Java WebService 簡單實例

前言:朋友們開始如下教程前,請先看第五大點的注意事項,以免沒必要要的重複操做。java

 

1、準備工做(如下爲本實例使用工具)web

一、MyEclipse10.7.1app

二、JDK 1.6.0_22ide

 

2、建立服務端工具

一、建立【Web Service Project】,命名爲【TheService】。post



 

 

 

二、建立【Class】類,命名爲【ServiceHello】,位於【com.hyan.service】包下。測試



 

 

 

三、編寫供客戶端調用的方法,即編譯方法代碼。字體



 

 

四、進行編譯spa

說明:編譯失敗的話,請將該項目引用的jdk設置爲1.6.0_17版本或更高版本3d



 

 

 

五、測試結果

測試地址:http://localhost:9001/Service/ServiceHello?wsdl



 

 

3、生成客戶端

一、建立【Web Service Project】,命名爲【TheClient】。



 

 

 

 

二、命令提示窗口執行生成命令。

格式:wsimport -s "src目錄" -p 「生成類所在包名」 -keep 「wsdl發佈地址」

示例:

wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl

說明:

1)"src目錄"地址不可含空格

2)「wsdl發佈地址」不要漏了「?wsdl」



 

 

三、刷新項目,檢查生成類



 

 
 

 

4、最終測試

一、建立【Class】類,命名爲【ServiceTest】,位於【com.hyan.test】包下。





  

 

 

二、編寫測試方法,調用服務端方法,並打印返回的結果。



 

 

 

5、注意事項

一、JDK版本太低問題

報相似以下的異常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?



 

緣由:JDK版本低於1.6.0_17

解決方法:調整該服務端項目所引用的JDK版本爲安裝的高版本JDK



 

 

 

 

 

 

 

 

 

 

 

 

二、生成命令路徑含空格問題

報相似以下的異常:directory not found: G:\SVN_FILE\GB\05



 

緣由:客戶端src路徑不可含有空格

解決方法:在不含空格路徑的文件夾下從新建立客戶端便可。

 

三、生成命令不完整問題

報相似以下的異常:[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):



 

緣由:生成命令末尾缺乏「?wsdl」

解決方法:補上便可。

錯誤不完整的命令示例:

wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello

正確完整的命令示例:

wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl

 

6、示例源碼

服務端源碼  下載

客戶端源碼  下載

 
   發表時間:2015-06-18   最後修改:2015-06-18
服務端在我電腦增長以下紅色字體部分才行,否者報com.sun.xml.internal.ws.model.RuntimeModelerException 
百度到以下連接地址,找到解決方案 
http://chenbingyyent.blog.163.com/blog/static/135278835201102484716262/ 


package com.hyan.service; 

import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 
import javax.jws.WebService; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 


@WebService 
@SOAPBinding(style=Style.RPC) 
public class ServiceHello { 
public String getValue(String name){ 
return "My name is "+name+"."; 


/** 
* @param args 
*/ 
public static void main(String[] args) { 
// TODO Auto-generated method stub 
Endpoint.publish("http://localhost:9001/Service/ServiceHello", new ServiceHello()); 
System.out.println("service success!"); 


0   請登陸後投票
 
   發表時間:2015-07-01  
若是路徑帶空格能夠加入""引發帶空格的路徑 例子:wsimport -s D:\\Users\\Workspaces\\"MyEclipse 8.5"\\TheClient -p com.client -keep http://localhost:9001/service/ServiceHello
相關文章
相關標籤/搜索