WebService学习之旅(二)JAX-WS基于Web容器发布WebService
在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个,如果每个WebService都去编写一个main方法显然不合适,不利于Web服务的集中管理,而且不方便WebService与Web应用整合。 一、准备工作 所有jar包下载地址: 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文档。 <?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工具类,使用方法如下: wsgen -keep -cp . com.csdn.jaxws.recipe01.HelloWorldImpl
將生成的类拷贝到jaxws子包下 7.將应用部署到tomcat中,并启动web服务器,打开浏览器访问: 8.客户端调用代码请参考上节示例。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – 为什么$scope.apply对angular的$q很
- angularjs – 角度函数错误:[$parse:syntax]
- -bash:命令替换:第XX行:语法错误:意外的文件
- Remoting和WebService有什么区别 《转帖》
- 安装mysql后连接出错(错误:Access denied for
- 用shell脚本实现定时备份数据库
- rails 4 中使用 bootstrap的radio button 的形式
- .NET调用SAP的WebService遇到的问题
- angularjs – 量角器:’wait’不适用于“elemen
- 当我的脚本断开时,如何让shell / ruby??发出噪音