JAVA操作WebService

我琢磨了下JAVA中的WebService,java中的Webservice现在比较流行的有两种: XFire和Axis

XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。

相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

XFire 与Axis2相比具有如下特征:

l         支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;

l         使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;

l         容易上手,可以方便快速地从pojo发布服务;

l         支持Spring、Pico、Plexus、Loom等容器;

l         灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;

l         高性能的SOAP 栈设计;

l         支持Spring、Pico、Plexus、Loom等容器。

XFire 与Axis1性能的比较如下:

l         XFire 比Axis1.3快2-6倍;

l         XFire 的响应时间是Axis1.3的1/2到1/5。

XFire 在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。

   需要的包有:activation-1.1.jar 、 commons-beanutils-1.7.0.jar、commons-codec-1.3.jar、commons- httpclient.jar、commons-logging-1.0.4.jar、jaxen-1.1-beta-9.jar、jaxws-api- 2.0.jar、jdom-1.0.jar、jsr173_api-1.0.jar、mail-1.4.jar、saaj-api-1.3.jar、 saaj-impl-1.3.jar、spring-1.2.6.jar、stax-api-1.0.1.jar、wsdl4j-1.5.2.jar、 wstx-asl-3.0.1.jar、xbean-2.1.0.jar、xbean-spring-2.5.jar、xfire-aegis- 1.2.2.jar、xfire-annotations-1.2.2.jar、xfire-core-1.2.2.jar、xfire- java5-1.2.2.jar、xfire-jaxws-1.2.2.jar、xfire-jsr181-api-1.0-M1.jar、xfire- spring-1.2.2.jar、XmlSchema-1.1.jar

  为了与spring集成,我查了些资料终于弄出个简单的利用spring+xfire开发web服务.

包结构:

JAVA操作WebService 

 

项目中加入spring的支持和xfire的支持以后,修改web.xml文件的配置:

JAVA操作WebService

 

为了使xfire与spring集成起来,我们采用了xFireSpringServlet这个类,是由xifire提供的,XFire还Spring提供了。

方便易用的导出器XFireExporter,借助该导出器的支持,我们可以再spring容器中将一个pojo导出为webservice,IHello是业务服务类,在此拥有一个sayHello的方法,我们希望将此方法开放为Web服务方法,在实际应用中,如果某个,如果一个类有很多的方法,而其中的方法不需要开放为Web服务方法,所以这时我们就可以定义一个榨借口,该接口只需定义那些开放为webservice 的业务方法。

 

下面是导出器:

JAVA操作WebService

 

然后我们启动服务器可以测试一下服务发布成功没有:

我的访问地址是:http://locahost:8088/spring_service/HelloService.ws?wsdl

如果访问成功,通过该地址我们就可以生产一个HelloService.wsdl的文件,通过该文件我们可以很方便的开发客服端应用程序了。

开发客服端应用程序有两种:(动态调用服务的方法    根据HelloService.wsdl调用)

动态调用:Client client=new Client(new URL("http://localhost:8088/spring_webservice/HelloService.ws?wsdl"));

Object[] o=client.invoke("sayHello", new Object[]{"admin"});
   System.out.println(o[0]);这样就可以调用我开放的web服务中的方法sayHello。

还有一种就是利用HelloService.wsdl文件,将该文件放到src下面就可以了:
JAVA操作WebService

 

 

你可能感兴趣的:(webservice)