WebService学习之旅(二)JAX-WS基于Web容器发布WebService
2016-03-24 21:46
489 查看
在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个,如果每个WebService都去编写一个main方法显然不合适,不利于Web服务的集中管理,而且不方便WebService与Web应用整合。
所以绝大多数情况下都会使用Web容器集中管理WebService,本文將向大家介绍如何使用JAX-WS基于Web应用服务器来发布WebService。
一、准备工作
1.获取JAX-WS所需所有JAR包,如下图所示
所有jar包下载地址:
http://download.csdn.net/detail/rongbo_j/9471877
2.打开Eclipse,新建一个web工程,將上节中的WebService接口和实现类拷贝到src目录下。
HelloWorld .java
HelloWorldImpl.java
3.將上面的jar包添加的classpath中,并发布到WEB-INF/lib目录下,接着在WEB-INF/web.xml文件中,添加如下内容:
以/service/*结尾的Http请求会经过WSServlet处理,生成WebService及WSDL文档。
4.接下来在WEB-INF目录下新建sun-jaxws.xml文件,配置内容如下:
5.使用jdk自带工具wsgen,生成webservice工具类,使用方法如下:
打开控制台进入工程根目录下的build\classes目录,输入命名
將生成的类拷贝到jaxws子包下
6.完整的工程结果如下图所示:
7.將应用部署到tomcat中,并启动web服务器,打开浏览器访问:
8.客户端调用代码请参考上节示例。
所以绝大多数情况下都会使用Web容器集中管理WebService,本文將向大家介绍如何使用JAX-WS基于Web应用服务器来发布WebService。
一、准备工作
1.获取JAX-WS所需所有JAR包,如下图所示
所有jar包下载地址:
http://download.csdn.net/detail/rongbo_j/9471877
2.打开Eclipse,新建一个web工程,將上节中的WebService接口和实现类拷贝到src目录下。
HelloWorld .java
package com.csdn.jaxws.recipe01; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; import javax.jws.soap.SOAPBinding.Use; @WebService @SOAPBinding(style = Style.DOCUMENT, use=Use.LITERAL) public interface HelloWorld { @WebMethod String sayHello(String text); }
HelloWorldImpl.java
package com.csdn.jaxws.recipe01; import javax.jws.WebService; @WebService(endpointInterface = "com.csdn.jaxws.recipe01.HelloWorld") public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { return "hello," + name; } }
3.將上面的jar包添加的classpath中,并发布到WEB-INF/lib目录下,接着在WEB-INF/web.xml文件中,添加如下内容:
<listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> <servlet> <servlet-name>WSServlet</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>WSServlet</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping>
以/service/*结尾的Http请求会经过WSServlet处理,生成WebService及WSDL文档。
4.接下来在WEB-INF目录下新建sun-jaxws.xml文件,配置内容如下:
<?xml version="1.0" encoding="UTF-8"?> <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> <endpoint name="HelloWorld" implementation="com.csdn.jaxws.recipe01.HelloWorldImpl" url-pattern="/service/HelloWorldService" /> </endpoints>
5.使用jdk自带工具wsgen,生成webservice工具类,使用方法如下:
打开控制台进入工程根目录下的build\classes目录,输入命名
wsgen -keep -cp . com.csdn.jaxws.recipe01.HelloWorldImpl
將生成的类拷贝到jaxws子包下
6.完整的工程结果如下图所示:
7.將应用部署到tomcat中,并启动web服务器,打开浏览器访问:
http://localhost:8080/jax-recipe02/service/HelloWorldService?wsdl
8.客户端调用代码请参考上节示例。
相关文章推荐
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
- opencv2 伸展直方图以提高图像对比度
- char *a 和char a[]的区别
- 安卓开发 socket之shutdownOutput()
- 5335Walk Out(贪心+bfs)
- 001.web前段学习笔记
- zendframwork 笔记 未完
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
- 9.0banb以前和9.0以后版本后JSON解析
- [bzoj3585]mex
- svn客户端
- 线性表的简单操作 置乱 测序
- 3. apache 调优
- androidstudio使用
- window下配置搭建 nginx+ php + mysql开发环境
- thinkphp 笔记 未完
- ArrayList去除集合中自定义对象元素的重复值
- codeforces301A. Yaroslav and Sequence
- 排序总结
- iOS-滤镜