webservice_发布服务_客户端调用(sun-jaxws)
2018-01-15 17:49
567 查看
如何用JAX-WS RI在Tomcat中发布WebService。
java EE 6Libraries中带webservices-api的jar包。还需导入webservices-rt.jar ,为web监听做准备
创建服务接口
创建服务接口实现类
在WEB-INF中创建配置文件sun-jaxws.xml,配置文件中一个WebService对应一个Endpoint。
在web.xml中添加WSServlet配置
运行tomact后,在浏览器中输入http://localhost:8080/webservice_service/services/testGetName?wsdl
在JDK的bin文件夹中,提供了一个根据wsdl生成java类的工具wsimport.exe。
输入以下命令,即可生成Java类
[plain] view
plain copy
wsimport -keep -d D:\ -s D:\ -p client -verbose http://localhost:8080/webservice_service/services/testGetName?wsdl
-keep:是否生成java源文件
-d:指定.class文件的输出目录
-s:指定.java文件的输出目录
-p:定义生成类的包名,不定义的话有默认包名
-verbose:在控制台显示输出信息
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2
最后生成的客户端Java类
我放这了
在客户端调用服务
输出
源码:http://download.csdn.net/download/qq_36967136/10207287
项目整体结构
服务端
java EE 6Libraries中带webservices-api的jar包。还需导入webservices-rt.jar ,为web监听做准备创建服务接口
package org.csapi.wsdl.parlayx.data.sync.v1_0.service; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; @WebService(name = "DataSync", targetNamespace = "http://www.csapi.org/wsdl/parlayx/data/sync/v1_0/interface") @SOAPBinding(style = Style.RPC) public interface DataSync { String getName(); }
创建服务接口实现类
package org.csapi.wsdl.parlayx.data.sync.v1_0.service; @javax.jws.WebService( endpointInterface = "org.csapi.wsdl.parlayx.data.sync.v1_0.service.DataSync",// 接口路径 targetNamespace = "http://www.csapi.org/wsdl/parlayx/data/sync/v1_0/service", //包名 serviceName = "DataSyncService", portName = "DataSync") public class DataSyncImpl { public String getName() { return "my name is 哈哈."; } }
在WEB-INF中创建配置文件sun-jaxws.xml,配置文件中一个WebService对应一个Endpoint。
<?xml version = "1.0"?> <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> <endpoint name="DataSync" implementation="org.csapi.wsdl.parlayx.data.sync.v1_0.service.DataSyncImpl"//实现类路径 url-pattern="/services/testGetName"> //随便 </endpoint> </endpoints>
在web.xml中添加WSServlet配置
<listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> <servlet> <servlet-name>jaxws</servlet-name> <servlet-class> com.sun.xml.ws.transport.http.servlet.WSServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jaxws</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
运行tomact后,在浏览器中输入http://localhost:8080/webservice_service/services/testGetName?wsdl
客户端
在JDK的bin文件夹中,提供了一个根据wsdl生成java类的工具wsimport.exe。输入以下命令,即可生成Java类
[plain] view
plain copy
wsimport -keep -d D:\ -s D:\ -p client -verbose http://localhost:8080/webservice_service/services/testGetName?wsdl
-keep:是否生成java源文件
-d:指定.class文件的输出目录
-s:指定.java文件的输出目录
-p:定义生成类的包名,不定义的话有默认包名
-verbose:在控制台显示输出信息
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2
最后生成的客户端Java类
我放这了
在客户端调用服务
package client; public class client { public static void main(String[] args) throws Exception { DataSyncService dss = new DataSyncService(); DataSync ds = dss.getDataSync(); System.out.println(ds.getName()); } }
输出
源码:http://download.csdn.net/download/qq_36967136/10207287
相关文章推荐
- spring boot整合cxf发布webservice服务和cxf客户端调用
- spring boot整合cxf发布webservice服务和cxf客户端调用
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务
- SpringBoot整合cxf发布WebService服务和客户端调用WebService服务
- 服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用
- webservice(四) 发布webservice服务和客户端调用的方式汇总
- webservice发布服务:CXF及客户端调用
- jdk annotation发布webservice服务 及生成客户端调用代码
- cxfspring boot整合cxf发布webservice服务和cxf客户端调用
- webservice发布服务:AXIS2及客户端调用
- WebService学习2:服务端发布服务、客户端调用服务
- WebService服务的发布及多种客户端方式调用
- 普元 EOS Platform 7.2开发环境生成webservice客户端代码调用BPS发布的服务,报错
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务
- axis2+spring3 发布webservice服务及其客户端调用
- axis2-1.6.2+spring3.1.4 发布 webservice 客户端调用总结
- WebService使用入门(包括发布服务,调用服务)
- jdk1.6.0.10版本下使用jaxws发布webservice服务
- WebService服务及客户端调用简单实例
- 客户端调用Webservice服务(SSL)