在这篇文章中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实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...
在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web...在实际开发中,还可以结合其他工具和框架,如Spring-WS、CXF等,以提升效率和灵活性。同时,理解SOAP协议和WSDL规范也是必不可少的基础知识。
描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...
本文将深入探讨如何使用Spring与Axis进行集成,以便开发和消费Web服务。 首先,让我们了解Spring和Axis的基本概念。Spring是一个开源Java框架,它为构建灵活、模块化且可测试的应用程序提供了强大的支持。它包含多...
当我们谈论“Spring + Axis2 开发 WebService”时,这通常指的是使用Spring框架与Apache Axis2工具来创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务。以下是关于这个主题的详细知识点: 1. *...
Axis2 调用webservice Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。 Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术
3. **创建WebService**:在Spring Boot应用中,你可以通过Axis1.4创建一个WebService。首先,定义一个Java类,包含你想要公开的方法。然后,使用Axis的工具生成服务端点接口和服务类。 4. **配置Spring Boot**:...
本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...
最近项目中遇到需要去掉老系统的webservice服务中的insert方法,找了很久,发现这样最简单,实测有效!!!
标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...
本教程将介绍如何利用Spring框架与Apache Axis2来开发和部署SOAP Web服务,这是一种高效且灵活的方式。 首先,我们需要了解Spring框架。Spring是一个开源的应用程序框架,它为Java开发提供了全面的基础设施支持。...
首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过其自动配置特性简化了CXF的设置。我们可以通过添加`cxf-spring-boot-starter-jaxws`依赖到项目中来启动这个过程。在`pom.xml`文件中添加如下依赖: ```...
Axis的辅助工具发布、调用WebService Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis ...
在这个"spring+axis编写webservice"的例子中,我们将深入探讨如何结合这两者来创建高效、灵活的Web服务,并利用JDOM解析XML数据。 首先,Spring框架是Java企业级应用开发的重要工具,提供了依赖注入(DI)和面向切面...
在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方式,而Axis2是Apache软件基金会...但总体来说,轴2WebService与Spring的整合是一个强大而实用的技术解决方案,对于构建复杂的企业级Web服务应用具有很高的价值。
异步调用WebService - **概念**:发送请求后不等待响应即可继续执行其他操作。 - **实现**:通过异步调用接口或回调机制实现。 ##### 9. 编写Axis2模块(Module) - **定义**:扩展Axis2的功能,如日志记录、...
Axis2和Spring框架的结合提供了一种高效且灵活的方式来创建和管理WebService。让我们深入了解一下这两个技术以及它们如何协同工作。 首先,Apache Axis2是Java平台上一个成熟的Web服务引擎,专门用于处理SOAP消息。...
Spring与Axis2的结合可以让你在Spring容器中管理和控制Web服务,使得服务的生命周期管理更加便捷。 - **Spring与Axis2集成**:通过使用Spring的Bean工厂,你可以将Web服务的实现类声明为一个Spring Bean。然后,...