1.首先讲解以下 webservice.
能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。说白了就是一个web服务的url资源。由HTTP+SOAP+WSDL组成。
2.and then 讲解以下 aixs2 .
一句话 apache开源的web serviece重量级组件。
3.下面直接贴例子源码,
a.将下列代码生成.class文件(不带package包声明),放到aixs2 WEB-INFO/pojo目录下。
/**
* SimpleService.java
*/
package com.ws.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* 函数功能:Axis2 Web Service 简单应用
* 开发人员:@author Zeming_gao
* 开发时间:2013-3-1
* 修改记录:
*
* 热发布Web Service ///axis2.xml
*
* <parameter name="hotdeployment">true</parameter>
*
* 可以将Axis2设为热更新 ///axis2.xml
*
* <parameter name="hotupdate">false</parameter>,将false改为true即可。
*
*/
public class SimpleService
{
/**
* 插入数据库
* 函数功能:TODO <br>
* 开发人员:@author Zeming_gao <br>
* 开发时间:2013-5-19 <br>
* 相关参数: <br>
* @param ad
* @param as
* @param sf
* @param ag
* 修改记录: <br>
// */
public static void InsertAD(String userId, String auditEventTimestamp,
String eventType, String fieldName, String fieldValue,
String fieldPreviousValue, String alertIndicator,
String auditEventSeq, String ruleId, String sessionId,
String source, String ruleTriggerSeq) throws SQLException,
ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
PreparedStatement ps = null;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
"root", "root");
String into = "insert into adas400(userId,auditEventTimestamp,eventType,fieldName,fieldValue,fieldPreviousValue,alertIndicator,auditEventSeq,ruleId,sessionId,source,ruleTriggerSeq) values (?,?,?,?,?,?,?,?,?,?,?,?)";
try {
ps = con.prepareStatement(into);
ps.setString(1, userId);
ps.setString(2, auditEventTimestamp);
ps.setString(3, eventType);
ps.setString(4, fieldName);
ps.setString(5, fieldValue);
ps.setString(6, fieldPreviousValue);
ps.setString(7, alertIndicator);
ps.setString(8, auditEventSeq);
ps.setString(9, ruleId);
ps.setString(10, sessionId);
ps.setString(11, source);
ps.setString(12, ruleTriggerSeq);
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
b.启动项目访问services列表,获得wsdl.的XML文件。需修改地方在下面分割为中间段。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://ws.apache.org/axis2" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax21="http://sql.java/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://ws.apache.org/axis2">
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="unqualified" targetNamespace="http://sql.java/xsd">
<xs:complexType name="SQLException">
<xs:sequence>
<xs:element minOccurs="0" name="SQLState" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="errorCode" type="xs:int"/>
<xs:element minOccurs="0" name="nextException" nillable="true" type="ax21:SQLException"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:ax22="http://sql.java/xsd" attributeFormDefault="qualified" elementFormDefault="unqualified" targetNamespace="http://ws.apache.org/axis2">
<xs:import namespace="http://sql.java/xsd"/>
<xs:element name="SimpleServiceSQLException">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="SQLException" nillable="true" type="ax21:SQLException"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SimpleServiceClassNotFoundException">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ClassNotFoundException" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InsertAD">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="userId" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="auditEventTimestamp" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="eventType" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="fieldName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="fieldValue" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="fieldPreviousValue" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="alertIndicator" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="auditEventSeq" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="ruleId" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="sessionId" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="source" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="ruleTriggerSeq" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InsertADResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="InsertADRequest">
<wsdl:part name="parameters" element="ns:InsertAD"/>
</wsdl:message>
<wsdl:message name="InsertADResponse">
<wsdl:part name="parameters" element="ns:InsertADResponse"/>
</wsdl:message>
<wsdl:message name="SimpleServiceSQLException">
<wsdl:part name="parameters" element="ns:SimpleServiceSQLException"/>
</wsdl:message>
<wsdl:message name="SimpleServiceClassNotFoundException">
<wsdl:part name="parameters" element="ns:SimpleServiceClassNotFoundException"/>
</wsdl:message>
<wsdl:portType name="SimpleServicePortType">
<wsdl:operation name="InsertAD">
<wsdl:input message="ns:InsertADRequest" wsaw:Action="urn:InsertAD"/>
<wsdl:output message="ns:InsertADResponse" wsaw:Action="urn:InsertADResponse"/>
<wsdl:fault message="ns:SimpleServiceSQLException" name="SimpleServiceSQLException" wsaw:Action="urn:InsertADSimpleServiceSQLException"/>
<wsdl:fault message="ns:SimpleServiceClassNotFoundException" name="SimpleServiceClassNotFoundException" wsaw:Action="urn:InsertADSimpleServiceClassNotFoundException"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SimpleServiceSoap11Binding" type="ns:SimpleServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="InsertAD">
<soap:operation soapAction="urn:InsertAD" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="SimpleServiceSQLException">
<soap:fault use="literal" name="SimpleServiceSQLException"/>
</wsdl:fault>
<wsdl:fault name="SimpleServiceClassNotFoundException">
<soap:fault use="literal" name="SimpleServiceClassNotFoundException"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="SimpleServiceSoap12Binding" type="ns:SimpleServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="InsertAD">
<soap12:operation soapAction="urn:InsertAD" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
<soap12:fault name="SimpleServiceSQLException">
<soap12:fault use="literal" name="SimpleServiceSQLException"/>
</soap12:fault>
<soap12:fault name="SimpleServiceClassNotFoundException">
<soap12:fault use="literal" name="SimpleServiceClassNotFoundException"/>
</soap12:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="SimpleServiceHttpBinding" type="ns:SimpleServicePortType">
<http:binding verb="POST"/>
<wsdl:operation name="InsertAD">
<http:operation location="InsertAD"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SimpleService">
<wsdl:port name="SimpleServiceHttpSoap11Endpoint" binding="ns:SimpleServiceSoap11Binding">
<soap:address location="http://localhost:8080/axis2/services/SimpleService.SimpleServiceHttpSoap11Endpoint/"/>
</wsdl:port>
<wsdl:port name="SimpleServiceHttpSoap12Endpoint" binding="ns:SimpleServiceSoap12Binding">
<soap12:address location="http://localhost:8080/axis2/services/SimpleService.SimpleServiceHttpSoap12Endpoint/"/>
</wsdl:port>
<wsdl:port name="SimpleServiceHttpEndpoint" binding="ns:SimpleServiceHttpBinding">
<http:address location="http://localhost:8080/axis2/services/SimpleService.SimpleServiceHttpEndpoint/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
3.client端即可正常编写代码调用,在这里不做说明.thanks.
[url=][img]http://s4.55.la/[/img][/url]