mvn构建JAX-WS项目含服务端和客户端代码实现
来源:互联网 发布:数据库建表工具 编辑:程序博客网 时间:2024/06/10 19:10
java中WebService框架有很多,像Axis,XFire,CXF等,除了上述框架外,JDK中自带JAX-WS框架。相比而言,JWS是轻量级的,使用非常简便,可与Spring集成使用。
下面就详述如何通过mvn构建WebService服务端及客户端。
1.引包。
在mvn项目的pom文件中加入依赖包
<dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.2.8</version></dependency>
引完包后记得重新构建项目,命令方式如下
mvn eclipse:eclipse -Dwtpversion=2.0 -DdownloadSources=true
2.写服务端代码,举Hello服务类如下
@WebServicepublic class Hello { @WebMethod public String sayHello(@WebParam(name = "name") String name) {// @WebParam来指定wsdl文件schema的参数名称,而不是显示为arg0,arg1等,以增加可读性 return String.format("Hello, %s", name); }}
上面通过注解@WebService表明这是一个WebService类,其中注解@WebMethod、@WebParam非必需。
3.服务发布
有两种方式发布自己的WebService
- 方式一:
public static void main(String[] args) { Endpoint.publish("http://localhost/HelloService", new Hello());}
直接通过Endpoint.publish方式进行WebService发布,一般用作调试。运行该类后在浏览器访问http://localhost/HelloService如下图
- 方式二:
发布到web容器中。下面以tomcat为例说明发布配置过程
在WEB-INF目录下新建sun-jaxws.xml文件(该xml文件名固定死的,不能随意修改),内容如下:
<?xml version="1.0" encoding="UTF-8"?><endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> <endpoint name="HelloService" implementation="com.gvtv.learn.ws.server.Hello" url-pattern="/HelloService" /><!-- url-pattern需要与web.xml中对应的servlet的url-pattern一致 --></endpoints>
然后修改web.xml,增加Listener和Servlet如下:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:conf/spring-*.xml</param-value> </context-param> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> <servlet> <servlet-name>SayHiService</servlet-name> <servlet-class> com.sun.xml.ws.transport.http.servlet.WSServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>SayHiService</servlet-name> <url-pattern>/HelloService</url-pattern> </servlet-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:conf/springMVC-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
注解sun-jaxws.xml中的url-pattern需要与web.xml中的servlet的url-pattern一致,如上例都为/HelloService(可任意取值)。
启动tomcat后浏览器中输入网址:http://localhost/jquery_ui/HelloService?wsdl(jquery_ui是本人的项目名),如看到wsdl文件则表明服务发布成功
4.java客户端调用
可利用JDK自带的wsimport工具生成基础代码
一、cmd界面下切换到项目的src\main\java目录下
二、执行命令
xxx\src\main\java>wsimport -encoding utf-8 -keep -d .\ -p com.gvtv.learn.ws.client http://localhost/jquery_ui/HelloService?wsdl
wsimport用法如下:
用法: wsimport [options] <WSDL_URI>其中 [options] 包括: -d <directory> 指定放置生成的输出文件的位置 -encoding <encoding> 指定源文件所使用的字符编码 -help 显示帮助 -keep 保留生成的文件(指保留java源文件) -p <pkg> 指定目标程序包名
此时,在包com.gvtv.learn.ws.client下可看见生成的源文件如下
三、利用上面生成的java源文件调用web服务。示例如下:
public class Main { public static void main(String[] args) { Hello service = new HelloService().getHelloPort(); String result = service.sayHello("屌丝!"); System.out.println(result); }}
可看到打印出信息
Hello, 屌丝!
至此,java版的WebService服务端和客户端就完成了,过程非常简单。下次补充下其它知识点
- mvn构建JAX-WS项目含服务端和客户端代码实现
- jax-ws 创建服务端和客户端
- 使用JAX-WS创建webservice服务,含服务端及客户端
- webservice之jax-ws服务端及客户端实现
- jax-ws服务端生成和客户端调用实例详解
- 创建webService (jax-ws)的客户端和服务端
- 构建Android Push Notification Service服务端及客户端[含代码]
- Myeclipse 基于JAX-WS 的 WebService 服务端和客户端的搭建
- jdk的wsgen.exe和cxf的wsimport.bat建立简单JAX-WS客户端服务端实践
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- JAX-WS生成服务端与客户端的两条命令
- 创建基于JAX-WS的WebService的服务端及客户端
- 基于JAX-WS的Web Service服务端/客户端
- 基于JAX-WS的Web Service服务端/客户端
- VC++动态链接库(DLL)编程深入浅出(zz)
- 何新生的英语史(六)—用零散时间学英语
- EasyUi---layout整体布局
- git学习--GitHub远程仓库和分支管理
- leetcode LinkList专题
- mvn构建JAX-WS项目含服务端和客户端代码实现
- 关于java连接webService的总结
- 环迅支付2015新代理政策
- Valid Palindrome
- 自定义时间运算
- Ubuntu 下 Chmod 修改权限无效
- linux 终端无法显示图片
- 论网宿、蓝汛视频内容推送(预加载)对接优缺点比较
- pip 安装过程中依赖处理