首先啟動Java6 WebServices (一)服務端一文中寫好的服務端。
新建個項目。命令行到src目錄執行,
wsimport -keep? http://localhost:8080/HelloService?wsdl
會自動生成一些代碼。
package?org.hermit.study.jdk.client;
import?javax.jws.WebMethod;
import?javax.jws.WebParam;
import?javax.jws.WebResult;
import?javax.jws.WebService;
import?javax.jws.soap.SOAPBinding;
/**
?*?This?class?was?generated?by?the?JAXWS?SI.
?*?JAX-WS?RI?2.0_02-b08-fcs
?*?Generated?source?version:?2.0
?*?
?*/
@WebService(name?=?"Hello",?targetNamespace?=?"http://jdk.study.hermit.org/client")
@SOAPBinding(style?=?SOAPBinding.Style.RPC)
public?interface?Hello?{
????/**
?????*?
?????*?@param?arg0
?????*?@return
?????*?????returns?java.lang.String
?????*/
????@WebMethod
????@WebResult(partName?=?"return")
????public?String?sayHello(
????????@WebParam(name?=?"arg0",?partName?=?"arg0")
????????String?arg0);
}
package?org.hermit.study.jdk.client;
import?java.net.MalformedURLException;
import?java.net.URL;
import?javax.xml.namespace.QName;
import?javax.xml.ws.Service;
import?javax.xml.ws.WebEndpoint;
import?javax.xml.ws.WebServiceClient;
/**
?*?This?class?was?generated?by?the?JAXWS?SI.
?*?JAX-WS?RI?2.0_02-b08-fcs
?*?Generated?source?version:?2.0
?*?
?*/
@WebServiceClient(name?=?"HelloService",?targetNamespace?=?"http://jdk.study.hermit.org/client",?wsdlLocation?=?"http://localhost:8080/HelloService?wsdl")
public?class?HelloService
????extends?Service
{
????private?final?static?URL?HELLOSERVICE_WSDL_LOCATION;
????static?{
????????URL?url?=?null;
????????try?{
????????????url?=?new?URL("http://localhost:8080/HelloService?wsdl");
????????}?catch?(MalformedURLException?e)?{
????????????e.printStackTrace();
????????}
????????HELLOSERVICE_WSDL_LOCATION?=?url;
????}
????public?HelloService(URL?wsdlLocation,?QName?serviceName)?{
????????super(wsdlLocation,?serviceName);
????}
????public?HelloService()?{
????????super(HELLOSERVICE_WSDL_LOCATION,?new?QName("http://jdk.study.hermit.org/client",?"HelloService"));
????}
????/**
?????*?
?????*?@return
?????*?????returns?Hello
?????*/
????@WebEndpoint(name?=?"HelloPort")
????public?Hello?getHelloPort()?{
????????return?(Hello)super.getPort(new?QName("http://jdk.study.hermit.org/client",?"HelloPort"),?Hello.class);
????}
}
下面我們再寫個測試,看看能不能用:
package?org.hermit.study.jdk.client.test;
import?org.hermit.study.jdk.client.Hello;
import?org.hermit.study.jdk.client.HelloService;
public?class?TestClient?{
????public?static?void?main(String[]?args)?{
????????HelloService?service?=?new?HelloService();
????????Hello?_hello?=?service.getHelloPort();
????????System.out.println(_hello.sayHello("hermit"));
????}
}
import?org.hermit.study.jdk.client.Hello;
import?org.hermit.study.jdk.client.HelloService;
public?class?TestClient?{
????public?static?void?main(String[]?args)?{
????????HelloService?service?=?new?HelloService();
????????Hello?_hello?=?service.getHelloPort();
????????System.out.println(_hello.sayHello("hermit"));
????}
}
控制臺輸出:
hello:hermit
ok!搞定。
java6搞定web service就這么簡單。。。。。。。。。。。。。。。。。。。。。。。。。。
xfire危險了。。。。。。。。。。。。。。。。。。。。。。。。