`

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

分享到:
评论

相关推荐

    xfire框架jar包合集 大全

    XFire对JSR 181的支持使得开发人员可以更方便地利用注解来声明Web服务接口和实现,简化了服务的开发过程。 XFire框架在Web服务开发中扮演的角色: 1. **SOAP支持**:XFire提供了SOAP消息处理能力,允许开发者创建...

    Web Services Using Apache CXF

    ### 使用Apache CXF实现Web服务的关键知识点 #### 一、Web服务技术的发展与现状 自Web服务技术出现以来,它已经在完善自身并找到在实际应用中的正确定位方面取得了长足的进步。随着规范的成熟,Web服务技术凭借其...

    WebService结合java开发技术

    Apache CXF是JAX-WS的一个实现,是Objectweb Celtix和Codehaus XFire合并后的产物,支持SOAP方式的Web服务(JAX-WS)以及REST风格的Web服务(JAX-RS)。CXF的核心是org.apache.cxf.Bus,它类似于Spring的...

    Apache CXF 中文教程

    JAX-WS的规范API位于javax.xml.ws.*包,而WS-Metadata(JSR181)则提供了使用注解配置Web服务的元数据信息。 JAX-RS(Java API for RESTful Web Services)是专门为RESTful架构风格设计的Web服务规范,它与JAX-WS...

    WebService的几种不同实现方式

    而WS-Metadata(JSR181)是JAX-WS的一个依赖规范,它通过注解提供配置Web服务的方法。 2. JAXM&SAAJ:JAXM(Java API for XML Messaging)主要定义了发送和接收SOAP消息的API,而SAAJ(SOAP With Attachments API ...

    CXF实用手册

    WS-Metadata(JSR181)是JAX-WS的一部分,它通过注解来配置Web服务的元数据信息和SOAP消息。 2. JAXM&SAAJ(Java API for XML Messaging & SOAP with Attachments API for Java):JAXM提供了XML消息的发送和接收...

    CXF使用手册

    而对于偏好使用RESTful风格Web服务的开发者,则可以选择JAX-RS规范来实现服务。 最后,手册建议开发者在使用CXF时,注意其API的变更和新版本带来的新特性。比如,随着技术发展,有些旧的API或规范可能不再被支持,...

    cxf使用手册,实用教程

    3. **JAX-RS**(Java API for RESTful Web Services):这是Java为REST风格Web服务制定的规范,虽然发布较晚,但逐渐成为构建现代Web服务的首选。JAX-RS的API位于`javax.ws.rs.*`包,由于其发布时间较晚,需要单独...

    WebService CXF学习-入门篇.pdf

    2. **JSR-181**:Web服务 metadata 规范,简化服务接口的元数据定义。 3. **SAAJ**:SOAP with Attachments API for Java,处理SOAP消息中的附件。 4. **JAX-RS**:Java API for RESTful Web Services,用于创建...

    Spring 2.0 开发参考手册

    使用XFire来暴露Web服务 17.6. 对远程接口不提供自动探测 17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session ...

    java webservice

    - **XFire** 支持一系列WebService标准,如JSR181、WSDL2.0、JAXB2.0 和 WS-Security等。 - **Axis**(尤其是Axis2)也支持多种标准,但在文档中并未具体列出。 2. **XML处理**: - XFire 使用Stax XML技术,...

    Spring API

    14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 ...

    Spring中文帮助文档

    14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.3.2.1. InternalResourceViewResolver 14.3.2.2. ResourceBundleViewResolver 14.4. Velocity和FreeMarker 14.4.1. ...

    spring chm文档

    使用XFire来暴露Web服务 17.6. 对远程接口不提供自动探测 17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session ...

Global site tag (gtag.js) - Google Analytics