科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件在Spring中使用XFire构建Web Service应用

在Spring中使用XFire构建Web Service应用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

XFire是Web Service框架的后起之秀,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。

作者:builder.com.cn 2007年5月22日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在JVM模式通过客户端进行测试

能够不启动Web服务器的情况下通过客户端程序测试Web Service的功能,这一崭新的测试方法对于开发人员来说一定深具吸引力。因为,这意味着你可以完全在IDE环境中运行测试,不需要外部环境的支持。

不过享受这一测试好处的应用必须保证客户端和服务端的Web Service都位于同一JVM中,这时请求报文和响应报文直接在JVM 内部通道中传输。当使用JVM内部通道传输请求和响应的SOAP报文时,我们仅需要调整服务的地址就可以了:

代码清单9 TextBbtForumService:JVM模式测试

package com.baobaotao.xfire.client;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import org.codehaus.xfire.spring.AbstractXFireSpringTest;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.baobaotao.xfire.server.BbtForumService;

public class TextBbtForumService extends AbstractXFireSpringTest {

protected ApplicationContext createContext() {

return new ClassPathXmlApplicationContext(

new String[]{"applicationContext.xml"});

}

public void testGetRefinedTopicCount() throws Throwable {

Service serviceModel = new ObjectServiceFactory().create(BbtForumService.class);

XFireProxyFactory factory = new XFireProxyFactory(getXFire());

①在JVM内部通道中进行SOAP请求和响应报文的传输,请注意粗体所示的服务地址

BbtForumService service = (BbtForumService) factory.create(serviceModel,

"xfire.local://BbtForumService");

int count = service.getRefinedTopicCount(20);

assertEquals(count,32);

}

}

以上代码中,①处的服务地址采用了JVM模式的地址,和其对应的HTTP地址则是http://localhost:8080/baobaotao/service/BbtForumService,所以仅需将服务名前的部分替换为“xfire.local://”就可以了。

小结

比之于Axis,XFire在实施Web Service更加简洁高效,因此XFire在短短的时间里成为了Web Service开发者的炙手可热的框架。更可贵的是XFire对Spring提供了强大的支持,可以非常方便地在Spring中使用XFire实施Web Service。

XFire可以通过多种方式将Spring容器中的Bean导出为Web Service,这包括使用XFireExporter导出器或JSR 181注解。JSR 181和STAX一起都将融入到JDK 6.0中,因此,JSR 181 Web Service定义方式将成为标准的实现。

XFire为客户端提供了多种访问Web Service的方式,如果可以获取客户端的窄接口类,则可以采用窄接口类调用Web Service。如果仅能获取WSDL,XFire也可以采用动态反射的机制调用Web Service。XFire为Eclipse提供了一个可以根据WSDL生成客户端存根代码的插件,相信XFire也将为其它非Java语言提供类似的插件。

技术可用性的一个很大的标准是它是否方便测试,XFire为在Spring中测试Web Service提供了一流的支持,通过JVM模式,你能够在不启动Web容器的情况下测试Web Service,Web Service的测试工作变得不再象原来那样让人畏惧。

(文/闹市孤僧)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章