?周末閑來無事,在家中復習了一下JDK6下開發(fā)WebService的知識,為了加強印象,特此記錄。
一、
?????? 樣例
開發(fā)環(huán)境
從
Java6
開始,
JDK
中已經(jīng)支持用
Java
開發(fā)
WebService
應(yīng)用了,不必選用第三方包。
軟件及其版本
|
JDK1.6.0_25
|
Eclipse3.4.2 JavaEE
版
|
?
二、
?????? 樣例工程結(jié)構(gòu)
(1)服務(wù)端com.ws.server
(手工編寫)
(2)
客戶端
com.ws.client
(自動生成)
(3)
客戶端調(diào)用
com.ws.client.test
(手工編寫)。
?三
、
???????樣例開發(fā)過程
1、新建Dynamic Web Project
2、編寫服務(wù)代碼
package com.ws.server; import javax.jws.WebService; @WebService public class HelloService { public String sayHello(String username) { return "hello," + username + "! This is HelloService!"; } }
3、發(fā)布服務(wù),在本例中使用Servlet發(fā)布服務(wù)
package com.ws.server; import java.io.IOException; import java.io.Writer; import javax.servlet.GenericServlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.xml.ws.Endpoint; public class HelloServicePublisher extends GenericServlet { @Override public void init(ServletConfig config) throws ServletException { super.init(config); System.out .println("準備啟動WebService-->http://192.168.1.103:8088/WS_Java6/HelloService"); // 發(fā)布一個WebService Endpoint.publish("http://192.168.1.103:8088/WS_Java6/HelloService", new HelloService()); System.out .println("成功啟動WebService-->http://192.168.1.103:8088/WS_Java6/HelloService"); } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("GBK"); Writer wr = response.getWriter(); wr .write("<a ); wr.close(); } }
4、生成客戶端
Java6
提供了生成
WebService
客戶端代碼的工具wsimport.exe,只需在命令行輸入一句簡單的命令就可以生成客戶端代碼。需要
注意的是,在生成客戶端前前需要先啟動服務(wù)端。如果已經(jīng)在啟動,就不需要重新啟動。
-p參數(shù)指定生成的代碼所要放置的包
在生成的客戶端中有一個java文件的名字是由服務(wù)端的類名加上一個Service組成的,這個xxxService我們可以把它看做是
WebService
的一個代理類,在客戶端我們通過這個代理類來調(diào)用服務(wù)。
5、編寫客戶端調(diào)用服務(wù)的代碼
package com.ws.client.test; import com.ws.client.HelloService; import com.ws.client.HelloServiceService; public class ClientTest { public static void main(String[] args) { // 創(chuàng)建一個客戶端服務(wù)對象 HelloService helloService = new HelloServiceService() .getHelloServicePort(); // 調(diào)用服務(wù)方法,并得到方法返回值 String returnContent = helloService.sayHello("張三"); // 打印服務(wù)的返回值 System.out.println(returnContent); } }
6、運行測試代碼
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
