JDK1.6 webservice 简单实例(转)

转网上的

在jdk1.6环境下开发web service是非常方便,因为jdk1.6已经集成了JAX-WS,大大减低了开发中的编码难度。

首先定义服务接口

@SOAPBinding(style = Style.DOCUMENT,use = Use.LITERAL) 指明绑定方式为DOCUMENT。

按照WS-I指导原则,use属性的取值选择literal。

然后实现服务接口

在实现接口时通过

@WebService(endpointInterface="com.lovo.TestService")指定服务接口的全类名。

在接口和实现类中出现的Peson和Book是2个pojo

在Person类中,持有Book类的一个引用和1个Book类的集合属性。

 

整个服务端的开发就完成了,可以用EndPoint发布后查看wsdl。也可以发布到web容器中,例如:Tomcat

如何将上述代码发布到Tomcat中?

web.xml中需要添加以下内容

我的url映射为/lovo

 

另外在web.xml的同级目录下(也就是WEB-INF)需要定义一个sun-specific的配置文件,因为WSServletContextListener这个监听器会读取这个配置文件。文件命名为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="TestService" implementation="com.lovo.TestServiceImpl" url-pattern="/lovo" />
</endpoints>
实际上就是定义了服务名和服务的实现以及url映射。

在这个文件中可以指定多个服务端点。

 

现在发布项目到Tomcat中完成服务端部署。

 

但是在Tomcat启动过程中会大量出现ClassNotFoundException,在Tomcat6.0环境下,需要导入一些jar包。

以下是我导入的jar包

jaxb-impl-2.1.12.jar

jaxws-rt-2.1.4.jar

stax-ex-1.2.jar

streambuffer-0.8.jar

 

现在Tomcat,就可以正常启动了,同时生成了一些JAX-B工件,通过http://localhost:8888/service/lovo?wsdl来检查服务是否部署成功。

至此服务端开发结束。

 

 

在已知wsdl文件的情况下,利用jdk1.6中的wsimport工具,生成客户端支持代码非常方便。

例如:wsimport -keep -p service.client http://localhost:8888/service/lovo?wsdl

表示在当前目录下,依据http://localhost:8888/service/lovo?wsdl的内容,生成包名为service.client的java文件和class文件。

 

利用wsimport工具生成的客户端支持代码可以快速的进行客户端开发。

在这个例子中,通过

TestServiceImplService ss = new TestServiceImplService();
TestService service = ss.getTestServiceImplPort();

2行代码获取服务接口的引用,从而可以开始方法调用。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值