JAXWS学习(一)- HelloWorld
在学习CXF的时候,看到了这一篇博客,写的是JAXWS,觉得不错,就先学习一下博主的几篇博客,要多些博主的分享啊。 原文地址:http://www.voidcn.com/article/p-mpqvvtsk-gc.html 这里写的应该算是,学习总结,根据自己的理解学习整理一下。 --------------------------------------------------------------------------------------------- JAX-WS的官方网站,大家可以在这里下载JAR包:https://jax-ws.java.net/ 我也上传了资源:http://download.csdn.net/detail/jolingogo/5452285 这里用的是JAXWS2.2.7-20120813.zip,这里面有各种jar包,示例,文档。 这里依然使用Maven来管理项目 1.pom.xml这里,暂时就加了一个依赖包jaxws-rt <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.deppon.demo</groupId> <artifactId>jaxws-demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>jaxws-demo Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 属性配置 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.2.7</version> </dependency> </dependencies> <build> <finalName>jaxws-demo</finalName> </build> </project> 2.写一个接口,写一个实现类,作为服务IUserService package com.deppon.demo.jaxws.service; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IUserService { @WebMethod(operationName="say") public String say(@WebParam(name="name") String name); } UserService package com.deppon.demo.jaxws.service.impl; import javax.jws.WebService; import com.deppon.demo.jaxws.service.IUserService; @WebService(endpointInterface="com.deppon.demo.jaxws.service.IUserService") public class UserService implements IUserService { @Override public String say(String name) { System.out.println("name->" + name); return "你好," + name; } } 3.sun-jaxws.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='UserService' implementation='com.deppon.demo.jaxws.service.impl.UserService' url-pattern='/userService' /> </endpoints> 4.web.xml<!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> <listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> </web-app>这里就出现问题了,不知道为什么,在网上找的资料说,需要配置一个Servlet: <servlet> <servlet-name>UserService</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>WSServlet</servlet-name> <url-pattern>/userService</url-pattern> </servlet-mapping> 我看,官方的例子里也有这么个Servlet,但是,我把他删除了之后,只加了一个监听,也一样可以成功,这个问题,有待解决。 接下来,就可以部署项目了。 5.部署项目将项目部署到Tomcat,还记得上面的sun-jaxws.xml吗,那里配置了一个url-pattern,这个在配置Servlet的时候见过,是一样的道理, 部署成功后,我们访问一下: 我们可以单击一下WSDL链接:
package com.deppon.demo.jaxws.service.impl; import javax.jws.WebMethod; import javax.jws.WebService; @WebService(serviceName="HWService") public class HelloWorld { @WebMethod() public String sayHello() { return "Hello world !"; } } <?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'> <endpoint name='userService' implementation='com.deppon.demo.jaxws.service.impl.UserService' url-pattern='/userService' /> <endpoint name="helloWorld" implementation="com.deppon.demo.jaxws.service.impl.HelloWorld" url-pattern="/helloworld" > </endpoint> </endpoints> 好了,重启一下Tomcat,访问??? http://localhost:8080/jaxws-demo/helloworld 看到了吗,两个服务都显示出来了,当然,可能就是这么设计的 到这里,我们就从Java代码发布了一个服务,下一篇,我们根据这个服务,写一个客户端来测试一下。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |