webservice——JAX-WS入门

来源:互联网 发布:淘宝联盟购物车返利吗 编辑:程序博客网 时间:2024/06/11 02:37

本文从服务器端开发和客户端验证两部分记录学习笔记。


一、服务器端开发

1 编写实现类

package endpoint;import javax.jws.WebMethod;import javax.jws.WebService;@WebService(    name="Message",    serviceName="MessageService",    targetNamespace="http://sinosoft.com/jaxws/service")public class Message {public Message() {};    @WebMethod(operationName="insert", action="urn:Insert")    public void insert(String sendUser,String toUser,String content,String type) {            System.out.println(sendUser + " to " + toUser +" ;content: " + content);     }}

2 生成必要制品(.wsdl文件和schema文件)

wsgen –cp ./WebRoot/WEB-INF/classes –d ****/test –s ****/test –wsdlcom.test.Test

wsgen命令参数注解:

-cp 是编译后的字节码目录(class文件目录)

-s  是源文件目录

-d 是编译后的字节码目录

-r  是生成wsdl文件的目录

-wsdl是根据那个java文件生成wsdl文件


3 部署到server中

web.xml内容配置如下

<listener>      <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>   </listener><servlet>     <servlet-name>message</servlet-name>     <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> </servlet> <servlet-mapping>     <servlet-name>message</servlet-name>     <url-pattern>/message</url-pattern> </servlet-mapping>


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='CalculatorService'          implementation='endpoint.Calculator'          url-pattern='/calculator'/>    <!-- calculator 指定访问路径下交由jaxws处理,要与<servlet-mapping>中的url-pattern一致 -->    <endpoint name='MessageService'          implementation='endpoint.Message'          url-pattern='/message'/></endpoints>

部署完毕之后,启动weblogic,加载相应的web模块,

http://127.0.0.1:7001/项目应用名称/message?wsdl当这个网址不出错,有内容时候,说明服务器向外提供webservice的服务了。同时,这也是验证的方法。


二、构建客户端

1)生成客户端的必要的制品

2)编写客户端

3)运行客户端

1、生成客户端必要制品

主要使用了jdk5自带的wsimport的命令,根据可以访问的wsdl地址生成必要的客户端的java类。

命令格式如下:wsimport -keep-d ./src http://jack:7001/WebContent/message?wsdl

-d      参数是地址源文件的目录

紧接着就是wsdl的地址

2、客户端调用,完成开发。

MessageService aservice = new MessageService();
Message server = aservice.getMessagePort();//server调用具体接口方法即可



原创粉丝点击