先決條件
GlassFish與Eclipse集成在一起 。
創建JAX-WS Web服務
1.在Eclipse中創建一個名為“ com.eviac.blog.jaxwsproj”的動態Web項目。 使GlassFish作為目標運行時。

2.在創建的項目中創建一個名為“ SampleWS”的新類。 這將是Web服務的實現類。

SampleWS.java
package com.eviac.blog.jaxws.service;import javax.jws.WebMethod;
import javax.jws.WebService;@WebService
public class SampleWS {@WebMethodpublic int sum(int a, int b) {return a + b;}@WebMethodpublic int multiply(int a, int b) {return a * b;}}
3.打開終端,然后導航到項目目錄的根目錄。 在WebContent / WEB-INF /中創建一個名為wsdl的目錄。 使用以下命令創建Web服務工件。 確保您的JAVA_ HOME設置正確,否則此命令將不起作用。 另外,請確保在運行此命令之前先構建項目,否則它將抱怨找不到類。
wsgen -classpath build/classes/ -wsdl -r WebContent/WEB-INF/wsdl -s src -d build/classes/ com.eviac.blog.jaxws.service.SampleWS

4.刷新項目以發現創建的工件。 在wsdl文件夾中打開創建的WSDL文件。 搜索REPLACE_WITH_ACTUAL_URL并將其替換為Web服務URL:http:// localhost:8080 / com.eviac.blog.jaxwsproj / SampleWSService,然后保存文件。



5.右鍵單擊項目,在Glassfish中部署該項目,單擊運行方式->在服務器上運行,然后選擇Glassfish服務器。


創建JAX-WS客戶端
1.在eclipse中創建一個名為“ com.eviac.blog.jaxwsclientproj”的Java項目。 打開一個新終端,然后轉到項目根目錄。 使用以下命令來生成訪問Web服務所需的類。 在這里,您將需要使用WSDL文件的URL。
wsimport -s src -d bin http://localhost:8080/com.eviac.blog.jaxwsproj/SampleWSService?wsdl

2.在項目中創建一個名為“ SampleWSClient”的新類。

SampleWSClient.java
package com.eviac.blog.jaxws.client;import javax.xml.ws.WebServiceRef;import com.eviac.blog.jaxws.service.SampleWS;
import com.eviac.blog.jaxws.service.SampleWSService;public class SampleWSClient {@WebServiceRef(wsdlLocation = 'http://localhost:8080/com.eviac.blog.jaxwsproj/SampleWSService?wsdl')private static SampleWSService Samplews;public static void main(String[] args) {SampleWSClient wsClient = new SampleWSClient();wsClient.run();}public void run() {Samplews = new SampleWSService();SampleWS port = Samplews.getSampleWSPort();System.out.println('multiplication Result= '+ port.multiply(10, 20));System.out.println('Addition Result= '+port.sum(10, 20));}}
3.右鍵單擊項目,然后單擊運行方式-> Java應用程序。 這將導致以下結果。
multiplication Result= 200
Addition Result= 30
參考: EVIAC博客上我們JCG合作伙伴 Pavithra Siriwardena的JAX-WS入門 。
翻譯自: https://www.javacodegeeks.com/2012/08/getting-started-with-jax-ws.html