先决条件
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