學(xué)習(xí)Java6(一) WebServices (2)客戶端
在Java6 WebServices (一)服務(wù)端這篇文章中和大家分享了Java6 WebServices 服務(wù)端的寫法,光有服務(wù)端還不行,還要有客戶端才行啊。看了一些網(wǎng)友的相關(guān)文章,都只給出了服務(wù)端的寫法,沒(méi)有說(shuō)客戶端怎么說(shuō)。經(jīng)過(guò)一番研究,終于搞定了客戶端,今天偶就和大家分享下。首先啟動(dòng)Java6 WebServices (一)服務(wù)端一文中寫好的服務(wù)端。
新建個(gè)項(xiàng)目。命令行到src目錄執(zhí)行,
wsimport -keep? http://localhost:8080/HelloService?wsdl
會(huì)自動(dòng)生成一些代碼。
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);
????}
}
下面我們?cè)賹憘€(gè)測(cè)試,看看能不能用:
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"));
????}
}
控制臺(tái)輸出:
hello:hermit
ok!搞定。
java6搞定web service就這么簡(jiǎn)單。。。。。。。。。。。。。。。。。。。。。。。。。。
xfire危險(xiǎn)了。。。。。。。。。。。。。。。。。。。。。。。。
posted on 2007-01-12 15:19 liaojiyong 閱讀(431) 評(píng)論(0) 編輯 收藏 所屬分類: WebService