锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
寮鍙戠幆澧冿細
1. jdk1.5
2. CXF妗嗘灦錛岀増鏈?span style="font-family: Helvetica; color: black; font-size: 14pt;">apache-cxf-2.2.3.zip錛屽埌http://cxf.apache.org/download.html涓嬭澆
娉細濡備嬌鐢?span style="color: red;">jdk1.6榪涜寮鍙戯紝闇涓嬭澆jaxb-api.jar鍜?span style="color: red;">jaxws-api.jar錛岀劧鍚庡湪鏈満瀹夎JDK鐨勫湴鏂癸紝鍦?span style="color: red;">jdk1.6.0鐨?span style="color: red;">jre鏂囦歡澶逛笅鐨?span style="color: red;">lib鏂囦歡澶逛腑鏂板緩endorsed鏂囦歡澶癸紝鏀懼叆浠ヤ笂涓や釜jar鍖呮墠鍙互榪涜寮鍙?/strong>銆?/span>
絎竴姝ワ紝鍏堝湪MyEclipse鏂板緩涓涓?/strong>java欏圭洰錛岄」鐩悕涓?/strong>HelloWebService銆?/span>
絎簩姝ワ紝鍦ㄩ」鐩腑寮曞叆apache-cxf-2.2.3.zip涓?/strong>lib涓嬬殑鎵鏈?/strong>jar鍖呫?/strong>
絎笁姝ワ紝緙栧啓嫻嬭瘯鐢ㄦ帴鍙d互鍙婂叾瀹炵幇綾伙細
鎺ュ彛錛?/span>
瀹炵幇綾伙細
鍦ㄦ帴鍙d腑娣誨姞WebService鐨勬敞瑙o紝灝嗗叾鏍囨敞涓?span style="font-size: 14pt;">WebService鐨勬湇鍔℃帴鍙c?/p>
絎洓姝ワ紝緙栧啓WebService鐨勬湇鍔″櫒绔?/strong>
factory.setAddress("http://localhost:8080/HelloWebService");
璁劇疆鏈嶅姟鍦ㄦ湇鍔″櫒涓婇儴緗茬殑浣嶇疆
factory.setServiceClass(HelloImpl.class);
璁劇疆鏈嶅姟鏆撮湶鐨勬帴鍙e疄鐜扮被
瀹屾垚涔嬪悗榪愯MainServer涓殑main鏂規硶銆?/p>
娉細鍥犱負CXF妗嗘灦涓湁Jetty 6 鏈嶅姟鍣紝鎵浠ヨ繖涓殑demo鍙戝竷鍦ㄥ叾涓繍琛屻?/p>
涔嬪悗鎵撳紑嫻忚鍣紝杈撳叆錛?/p>
http://localhost:8080/HelloWebService?wsdl
濡傝兘鐪嬭浠ヤ笅鐢婚潰鍒?span style="font-size: 14pt;">WebService鍙戝竷鎴愬姛錛?/p>
絎簲姝ワ紝緙栧啓瀹㈡埛绔?/strong>
factory.setServiceClass(Hello.class);
璁劇疆璁塊棶鏈嶅姟鍣ㄧ鐨勬寚瀹氭帴鍙c?/p>
factory.setAddress("http://localhost:8080/HelloWebService");
璁劇疆璁塊棶鐨勬湇鍔$殑鍦板潃銆?/p>
factory.create()
鍒涘緩浠g悊瀵硅薄浠ヤ緵榪滅▼璋冪敤
涔嬪悗榪愯Client涓?span style="font-size: 14pt;">main鏂規硶錛屽彲浠ュ湪鎺у埗鍙扮殑鏈嶅姟鍣ㄧ鐪嬭濡備笅杈撳嚭錛?/p>
璇存槑瀹㈡埛绔皟鐢?span style="font-size: 14pt;">WebService鎴愬姛銆?/p>
鑷蟲錛岃繖涓畝鍗曠殑WebService寮鍙戝畬姣?br />
灝濊瘯榪噅dk1.6 瀹冪殑鍖呬細鍙樻垚import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; 騫朵笖娌℃湁factory.setAddress榪欎釜鏂規硶 閲囩敤鑷甫鐨勪緥瀛愯繘琛屾祴璇?浼氬嚭鐜板弬鏁皀ull閿欒錛屼絾鏄鎴風璋冪敤鏈嶅姟鍣ㄧ閮借皟鐢ㄦ垚鍔燂紝鍙兘鍘熷洜鏄病鏈夊姞杞介偅涓や釜JAR鏂囦歡鐨勯棶棰橈紝鏆傛椂娌℃湁嫻嬭瘯
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class HelloWorld {
public OMElement sayHello(OMElement in){
String name=in.getText();
String info=name+"HelloWorld!";
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
resp.setText(info);
return resp;
}
}
|
<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloWorld">
<description>
This is a sample Web Service.
</description>
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
|
package example.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
private static EndpointReference targetEPR=new EndpointReference
("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
OMElement method=fac.createOMElement("sayHello",omNs);
method.setText("ZJ");
return method;
}
public static void main(String[] args){
try{
Options options=new Options();
options.setTo(targetEPR);
ServiceClient sender=new ServiceClient();
sender.setOptions(options);
OMElement sayHello=TestClient.getSayHelloOMElement();
OMElement result=sender.sendReceive(sayHello);
System.out.println(result);
}
catch(Exception axisFault){
axisFault.printStackTrace();
}
}
}
|
package sample;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class HelloWorld {
//璇誨彇client绔?/span>getSayHelloOMElement()鏂規硶浼犻掔殑鍙傛暟in銆?/span>
public OMElement sayHello(OMElement in){
//灝?/span>in杞崲涓?/span>String銆?/span>
String name=in.getText();
String info=name+"HelloWorld!";
//鍒涘緩response SOAP鍖呫?/span>
OMFactory fac=OMAbstractFactory.getOMFactory();
// OMNamespace鎸囧畾姝?/span>SOAP鏂囨。鍚嶇О絀洪棿銆?/span>
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
//鍒涘緩鍏冪礌sayHello錛屽茍鎸囧畾鍏跺湪omNs鎸囦唬鐨勫悕縐扮┖闂翠腑銆?/span>
OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
//鎸囧畾鍏冪礌鐨勬枃鏈唴瀹廣?/span>
resp.setText(info);
return resp;
}
}
|
<?xml version="1.0" encoding="UTF-8"?>
//涓嬮潰瀹氫箟鏈嶅姟鍚?/span>
<service name="HelloWorld">
<description>
This is a sample Web Service.
</description>
// ServiceClass鎸囧畾Java Class鐨勪綅緗紝鍗沖疄鐜版湇鍔$殑綾匯?/span>
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
// operation 涓?/span>Java Class涓柟娉曞悕瀵瑰簲銆?/span>
<operation name="sayHello">
// messageReceiver鐪嬩笅鏂囨敞瑙c?/span>
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
|
package example.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
// targetEPR鎸囧畾鎵撳寘鐨?/span>Service錛?/span>.aar鏂囦歡錛?/span>鍦ㄥ鍣ㄤ腑鐨勭墿鐞嗕綅緗?/span>
private static EndpointReference targetEPR=new EndpointReference
("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){
//鍒涘緩request SOAP鍖呫?/span>
OMFactory fac=OMAbstractFactory.getOMFactory();
// OMNamespace鎸囧畾姝?/span>SOAP鏂囨。鍚嶇О絀洪棿銆?/span>
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
//鍒涘緩鍏冪礌sayHello錛屽茍鎸囧畾鍏跺湪omNs鎸囦唬鐨勫悕縐扮┖闂翠腑銆?/span>
OMElement method=fac.createOMElement("sayHello",omNs);
//鎸囧畾鍏冪礌鐨勬枃鏈唴瀹廣?/span>
method.setText("ZJ");
return method;
}
public static void main(String[] args){
try{
Options options=new Options();
options.setTo(targetEPR);
ServiceClient sender=new ServiceClient();
sender.setOptions(options);
OMElement sayHello=TestClient.getSayHelloOMElement();
//鍙戝嚭request SOAP錛?/span>
//鍚屾椂灝嗗緱鍒扮殑榪滅鐢?/span>sayHello鏂規硶榪斿洖鐨勪俊鎭繚瀛樺埌result銆?/span>
//閫氳繃services.xml鑳藉噯紜壘鍒?/span>sayHello鏂規硶鎵鍦ㄧ殑鏂囦歡銆?/span>
OMElement result=sender.sendReceive(sayHello);
}
catch(Exception axisFault){
axisFault.printStackTrace();
}
}
}
|