加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 02:56:32 所属栏目:安全 来源:网络整理
导读:JSR 181 通过标准化一个易于学习且可以快速开发的 Web 服务简单编程模型,从而刺激了对 Web 服务的采用。一直以来, J2EE 开发人员要开发和部署 Web 服 务就必须掌握相当多的信息。通过使用 J2SE 5.0 中的新增注释功能, Java 软件源代码可以使用 JSR 181 注

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服务的元数据

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读