`

Spring与axis结合调用 WebService

阅读更多
在这篇文章中http://xace.iteye.com/blog/687457 ,
我们使用XFire发布了Web Service,现在我们使用axis作为客户端,调用这个服务

因为Web服务是平台无关的,每个WSDL文件即能描述服务的全部信息,我们首先借助axis的WSDL2Java工具,将WSDL文件转化为java类
java -cp lib\axis.jar;lib\commons-logging.jar;lib\commons-discovery.jar;lib\jaxrpc.jar;lib\saaj.jar;lib\wsdl4j.jar org.apache.axis.wsdl.WSDL2Java -v -W -o src -p demo.webservice.client http://localhost:8888/BookService?wsdl
pause

生成的代码在/demo/webservice/client目录中

我们观察http://localhost:8888/BookService?wsdl地址的WSDL文件,其中关键部分:

<wsdl:definitions targetNamespace="http://server.webservice.demo">

  <wsdl:service name="BookService">
    <wsdl:port name="BookServiceHttpPort" binding="tns:BookServiceHttpBinding">
      <wsdlsoap:address location="http://localhost:8888/BookService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>




  public static void main(String[] args) 
  throws ServiceException, MalformedURLException, RemoteException {
    // 客户端调用代码符合标准JAX-RPC接口,不会和具体底层框架绑定
    String wsdl = "http://localhost:8888/BookService?wsdl";
    String namespaceUri = "http://server.webservice.demo";
    String serviceName = "BookService";
    String portName = "BookServiceHttpPort";
    QName serviceQN = new QName(namespaceUri, serviceName);
    QName portQN = new QName(namespaceUri, portName);
    ServiceFactory factory = ServiceFactory.newInstance();
    Service srv = factory.createService(new URL(wsdl), serviceQN);
    BookServicePortType service = 
      (BookServicePortType) srv.getPort(portQN, BookServicePortType.class);
    SearchResponse search = service.search(new Search("j2ee"));
    System.out.println(Arrays.toString(search.getOut()));
    
    // 通过Spring JaxRpcPortProxyFactoryBean 取得
    ApplicationContext context =
      new ClassPathXmlApplicationContext("config.xml");
    MyService springService = (MyService) context.getBean("bookService");
    search = springService.search(new Search("j2ee"));
    System.out.println(Arrays.toString(search.getOut()));
  }



  <bean id="bookService"   
      class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean">
    <!-- 
      BookServicePortType远程调用方法都将抛出RemoteException,可以自定义一个具有
      相同方法签名的接口,不抛出异常。这样客户端不知道自己调用的是Web服务,解耦
    -->
    <property name="serviceInterface" value="demo.webservice.client.MyService" />
    <property name="portInterface" 
        value="demo.webservice.client.BookServicePortType" />
    <property name="wsdlDocumentUrl" 
        value="http://localhost:8888/BookService?wsdl" />
    <property name="namespaceUri" value="http://server.webservice.demo" />
    <property name="serviceName" value="BookService" />
    <property name="portName" value="BookServiceHttpPort" />
  </bean>
分享到:
评论

相关推荐

    Spring集成axis2实现webservice所用到的包

    总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...

    axis2发布webservice和调用axis2服务接口

    在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web...在实际开发中,还可以结合其他工具和框架,如Spring-WS、CXF等,以提升效率和灵活性。同时,理解SOAP协议和WSDL规范也是必不可少的基础知识。

    axis2+spring webservice

    描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...

    spring+axis集成webservice

    本文将深入探讨如何使用Spring与Axis进行集成,以便开发和消费Web服务。 首先,让我们了解Spring和Axis的基本概念。Spring是一个开源Java框架,它为构建灵活、模块化且可测试的应用程序提供了强大的支持。它包含多...

    Spring + axis2 开发 webservice

    当我们谈论“Spring + Axis2 开发 WebService”时,这通常指的是使用Spring框架与Apache Axis2工具来创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务。以下是关于这个主题的详细知识点: 1. *...

    axis2调用Webservice

    Axis2 调用webservice Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。 Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术

    springboot+axis1.4

    3. **创建WebService**:在Spring Boot应用中,你可以通过Axis1.4创建一个WebService。首先,定义一个Java类,包含你想要公开的方法。然后,使用Axis的工具生成服务端点接口和服务类。 4. **配置Spring Boot**:...

    Java动态调用webService,axis2动态调用webService

    本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...

    springboot动态调用webservice接口

    最近项目中遇到需要去掉老系统的webservice服务中的insert方法,找了很久,发现这样最简单,实测有效!!!

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    Spring+axis2开发webservice[整理].pdf

    本教程将介绍如何利用Spring框架与Apache Axis2来开发和部署SOAP Web服务,这是一种高效且灵活的方式。 首先,我们需要了解Spring框架。Spring是一个开源的应用程序框架,它为Java开发提供了全面的基础设施支持。...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过其自动配置特性简化了CXF的设置。我们可以通过添加`cxf-spring-boot-starter-jaxws`依赖到项目中来启动这个过程。在`pom.xml`文件中添加如下依赖: ```...

    axis2_WebService_开发指南

    Axis的辅助工具发布、调用WebService Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis ...

    spring+axis编写webservice

    在这个"spring+axis编写webservice"的例子中,我们将深入探讨如何结合这两者来创建高效、灵活的Web服务,并利用JDOM解析XML数据。 首先,Spring框架是Java企业级应用开发的重要工具,提供了依赖注入(DI)和面向切面...

    Axis2搭建WebService服务端demo

    在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...

    Axis2WebService与Spring的整合

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方式,而Axis2是Apache软件基金会...但总体来说,轴2WebService与Spring的整合是一个强大而实用的技术解决方案,对于构建复杂的企业级Web服务应用具有很高的价值。

    Axis2(WebService)经典教程

    异步调用WebService - **概念**:发送请求后不等待响应即可继续执行其他操作。 - **实现**:通过异步调用接口或回调机制实现。 ##### 9. 编写Axis2模块(Module) - **定义**:扩展Axis2的功能,如日志记录、...

    axis2+Spring提供WebService服务

    Axis2和Spring框架的结合提供了一种高效且灵活的方式来创建和管理WebService。让我们深入了解一下这两个技术以及它们如何协同工作。 首先,Apache Axis2是Java平台上一个成熟的Web服务引擎,专门用于处理SOAP消息。...

    axis2发布webservice各种方式实例

    Spring与Axis2的结合可以让你在Spring容器中管理和控制Web服务,使得服务的生命周期管理更加便捷。 - **Spring与Axis2集成**:通过使用Spring的Bean工厂,你可以将Web服务的实现类声明为一个Spring Bean。然后,...

Global site tag (gtag.js) - Google Analytics