服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

[webservices开发]使用xfire开发jsr181风格的web服务

jsr 181通过标准化一个易于学习且可以快速开发的web服务简单编程模型,从而刺激了对web服务的采用。一直以来,j2ee开发人员要开发和部署web 务就必须掌握相当多的信息。通过使用j2se 5.0中的新增注释功能,java软件源代码可以使用jsr 181注释进行注释,从而声明式地定义所需的web服务行为。这使开发人员可以将注意力集中在web服务的应用逻辑上而无需担心复杂的api、协议和部署 描述符。

 

bea官方网站有一篇“web服务元数据简介,对理解jsr 181规范很有帮助。

 

这一节的例子和上一节的例子很相似,或者通过使用java注释,比上一节的pojo稍微复杂了一点。不是说jsr 181节省了很多的配置信息吗?鄙人认为可以从这个方面来理解,正常情况下,pojo如果配置到其他webservices框架下,比如axis2celtixweblogic等容器中,必然需要编写适合这些容器的配置文件,以便这些容器能够识别这个pojo类是wenservices,并根据配置文件中的比如命名空间、参数类型、web服务的方法等信息提供web服务。而通过jsr 181规范中的定义可以自动识别这些信息,这样这些信息不必在每个容器中所配置,这些容器通过java注释就可以得到这些信息,所以说jsr181在这方面进行了简化。xfire通过services.xml文件得到哪个类被定义为web服务, xfire可以通过java注释来获取web服务的相关信息。

 

好了,让我们先写一个带jsr181注释的java文件:

package com.kuaff.xfire.samples;

import javax.jws.webmethod;

import javax.jws.webparam;

import javax.jws.webresult;

import javax.jws.webservice;

 

@webservice(name="mathservice",servicename="mathservice",targetnamespace="http://www.kuaff.com/xfire/samples/mathservice")

public class mathservice

{

    @webmethod

    @webresult

    public long add(@webparam int p1, @webparam int p2)

    {

        return p1 + p2;

    }

}

 

这个例子中将mathservice定义为web服务程序,服务名为mathservice,命名空间为mathservice,将add方法定义为web服务的方法,带有两个参数。

 

修改services.xml文件,修改完毕后的内容如下:

<beans xmlns="http://xfire.codehaus.org/config/1.0">

  <service>

    <serviceclass>com.kuaff.xfire.samples.mathservice</serviceclass>

    <servicefactory>jsr181</servicefactory>

  </service>

</beans>

 

在这个配置文件中,你只需指定serviceclassservicefactory即可,xfire会根据注释获取这个web服务的元数据

 

[webservices开发]使用xfire开发jsr181风格的web服务

下面的步骤和上一节介绍的类似,将相应的文件复制到xfire web应用程序相应的文件夹,启动tomcat就可以检验这个web服务了。客户端的编写和上一节相同。

扫描关注微信公众号