使用Myeclipse 8.5開發基於JAX-WS的Web service實例
本文爲Web service 開發入門篇,主要介紹在Myeclipse 8.5環境下開發Web service的服務程序和客戶端程序的基本流程。
在Weblogic 10.3.4 中部署Web service服務。
開發環境以下:
JAVA IDE: Myeclipse 8.5 java
開發Web service服務程序,須要瞭解如下相關內容, WSDL, SOAP, XML。這些是組成Web service 的基礎。
在Myeclipse8.5下開發Web service程序,目前系統支持的開發框架有3個,
JAX-WS,REST(JAX-RS),XFire。其中系統建議不要使用XFire 的框架,多是要被淘汰了(deprecated)。咱們選擇的是JAX-WS框架。這個須要Java EE 5.0的支持。因此後面選擇Web server容器的時候,是要能支持Java EE 5.0的才能夠部署成功。web
(一) Web service服務端開發
1. 新建一個Web service project, 菜單File -> New -> Web Service Project, apache
在上面的框中輸入項目名myWebSvc,框架選擇 JAX-WS, J2EE只能選擇Java EE 5.0。
Finish完成項目新建。
2. 新建一個 Java Bean, 就是一個普通的Class, File –> New -> Class,瀏覽器
Next 進入下一步,app
選擇 Create web service from java class(Bottom-up scenario),Next進入下一步,框架
Java class 輸入 com.myweb.ws.SayHello, 選中 Generate WSDL in project 選項,
Finish 結束新建。
生成新的服務代理類, com.myweb.ws.SayHelloDelegation
生成WSDL定義文件,WebRoot\WEB-INF\wsdl\SayHelloService.wsdl
WebRoot\WEB-INF\wsdl\SayHelloService_Schema1.xsd, eclipse
(二) 部署Web service 服務spa
Tomcat 6.0上部署,須要加上JAX-WS API / Runtime 兩個庫,不然會報錯,------------>jar包在網盤JAX-WS2.1.2目錄下代理
嚴重: Error configuring application listener of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
啓動Tomcat 服務,在瀏覽器輸入 http://localhost:8080/myWebSvc/SayHelloPort?wsdl,若是顯示正確,則服務發佈成功。server
(三) Web service 客戶端開發
1. 新建 Java project, File -> New -> Java Project
輸入項目名 UseWS, Finish 結束新建。
2. 新建Web service client程序, File –> New -> Other -> MyEclipse -> Web Services -> Web Service Client,
Next 進入下一步
WSDL File 爲Web Service 的WSDL文件
E:\workspace\myWebSvc\WebRoot\WEB-INF\wsdl\SayHelloService.wsdl
或者 http://localhost:8080/myWebSvc/SayHelloPort?wsdl
Next進入下一步,
Finish 結束新建。
3. 新建一個Test類,用來調用 SayHelloService, File -> New -> Class,
Finish 結束類的新建。
修改類以下:
import com.myweb.ws.SayHelloDelegate; import com.myweb.ws.SayHelloService; public class Test { public static void main(String[] args) { String request = "World"; String response = null; SayHelloService sayHelloSvc = new SayHelloService(); SayHelloDelegate sayHelloDgt = sayHelloSvc.getSayHelloPort(); response = sayHelloDgt.sayHaha(request); System.out.println(response); } }
Haha, World, O.K. !