本文从服务器端开发和客户端验证两部分记录学习笔记。
一、服务器端开发
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>
<?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调用具体接口方法即可
---
附录,比较好的一个文章:
http://www.cnblogs.com/coprince/p/5732822.html