目前J2EE中使用的web serivce的主流技术有JAX-WS2.0, CXF, AXIS2等,这些技术都能作为WSDL1.1, 1,2服务器或者客户端。JAX-WS2.0, CXF, AXIS2这些技术各有优缺点, 相互之间也会有一些类库冲突,一般在一个公司内部都会采用欧一种技术作为web service的实现。我们用的是jboss 的jax-ws实现。
最近在项目中遇到了一个和billing system集成的任务, 这个系统发布得有6,7年了,用软件开发的术语来描述就是和Legacy System集成。从客户那边拿到了一个使用rpc/encoding作为binding style的wsdl文件,用这个wsdl生成客户端的stub类。尝试了jax-ws的wsimport,得到"jax ws - java: Rpc/encoded wsdls are not supported in JAXWS 2.0"的错误,wsimport不支持rpc/encoding。
说一下最终目标:
1)使用wsdl文件生成一个web service的服务器作为模拟器,用于集成测试
2)生成一个client,部署于jbossesb 4.8中作为客户端调用web serivce
通过比较最终得出
wsdl2java(AXIS2) 用于生成web service的服务器作为模拟器
wscompile(AXIS) 生成客户端stub
Part 1 使用wsdl2java(AXIS2)生成web service的服务器作为模拟器
Use Axis2 to implement the axis web service:
1) Use Axis2 wsdl2java to generate source code(use ant in maven)
2) wsdl2java config: -ss -wsdl 1.1 ...
3) Add dependencies
4) copy generated xsd file to classes folder
5) copy wsdl file to
6) modify services.xml to use a mock service implemenation
<!-- The following dependencies are used to generate the server side source code from wsdl. -->
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
... ...
</dependencies>
<build>
<plugins>
<!-- use ant to call wsdl2java to generate the java source code, see detail in build.xml -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<ant antfile="${basedir}/build.xml" target="generate.server" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- add the generated source code to source path -->
<plugin>
... ...
</plugin>
<!-- copy generated xsd files to WEB-INF/classes -->
<plugin>
... ...
</plugin>
</plugins>
Use ant script to run wsdl2java to generate client side stub.
<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true" classpath="${compile_classpath}">
<arg line="-uri ./src/main/webapp/WEB-INF/services/GreatLakes/META-INF/IOBISMSClient.wsdl" />
<arg line="-s" />
<arg line="-ss" />
<arg line="-sd" />
<arg line="-wv 1.1" />
<arg line="-l java" />
<arg line="-p net.beaumaris.billing.gl.mockservice" />
<arg line="-d xmlbeans" />
<arg line="-o ./target/generated-sources/xjc" />
</java>
</target>
Part 2 使用wscompile(AXIS) 生成客户端stub
TBD
分享到:
相关推荐
Web 服务描述语言(WSDL,Web Service Description Language)是一种XML格式,用于定义网络服务的接口,包括服务的位置、操作及如何与这些服务交互。在WSDL文档中,SOAP(Simple Object Access Protocol)绑定部分...
Web Services Description Language ...虽然WSDL 1.1存在其复杂性和历史遗留问题,但它仍然是构建和理解Web服务接口的关键工具。通过深入学习和实践,开发者可以有效地处理这些问题,创建稳定、可靠的Web服务接口。
WSDL(Web Services Description Language)1.1版本作为W3C发布的官方标准规范,是描述网络服务的一套详尽指南,旨在为开发者提供一个统一、标准化的方式,来定义和描述网络服务的功能和通信协议。这份规范的重要性...
WSDL规范目前最新的版本是2.0 ,但是目前大部分还是按1.1的版本进行使用,而且1.1的内容看上去比2.0也简单些,所以我就翻译了这个版本。 作为一种《炒作过度的技术和概念》的一类,WEB Service的确是太过重量级,...
**Web Service描述语言(WSDL)详解** Web Service描述语言(Web Service Description Language,简称WSDL)是一种XML格式,用于定义网络服务的接口。它允许服务提供者明确地描述服务的位置、使用的消息协议以及...
本文将详细介绍如何编写一个简单的 WSDL 文件,以及如何根据该 WSDL 文件来编写服务器端与客户端的代码,并最终实现 Web Service 的发布过程。 ### WSDL 文件概述 WSDL 文件分为两个主要版本:WSDL 1.1 和 WSDL ...
4. **Web Service开发**:包括如何定义、发布和调用Web Service,如使用WSDL(Web Service Description Language)和UDDI(Universal Description, Discovery, and Integration)。 5. **实例分析**:书中将提供...
在IT行业中,尤其是在Web服务开发...在实际应用中,配合NC65和UAP Studio 6.5的这个WSDL文件生成工具,开发团队可以更高效地构建和维护基于Web服务的解决方案,促进跨系统的集成和数据交换,实现企业信息化的高效运作。
Web Services Description Language(WSDL)1.1版是中国的一个中文规范,它是一种基于XML的格式,用于描述网络服务,将这些服务视为一组操作消息的端点。这些端点可以处理面向文档的信息或面向过程的信息。WSDL的...
Web Service 描述语言(WSDL,Web Service Description Language)是一种基于XML的语言,专门用来定义Web服务的接口。WSDL文件提供了详细的规范,让服务提供者和服务消费者能够理解如何交互,从而促进不同系统间的...
通过示例说明document/literal、document/literal(wrapped)、rpc/encoded、rpc/literal样式的web服务对应的soap消息格式,对于理解webservice有很大好处,尤其是根据wsdl构造soap消息,非常有价值。
Web Service是一种基于标准的、松散耦合的系统集成方式,通过XML和WSDL(Web服务描述语言)定义接口,使得服务提供者和消费者可以跨越不同的网络、操作系统和编程语言进行交互。本书会讲解如何使用Delphi 6和Kylix 2...
我们深入探讨《Web Service描述语言 WSDL 详解》这一主题,了解WSDL为何如此关键以及其内部结构如何支撑Web服务的交互。 ### 为什么使用WSDL? WSDL,即Web Services Description Language,是一种用于描述Web服务...
发布 Web Service 服务可以让其他系统调用 SAP ECC 系统的功能和数据,而调用外部异构系统发布的 Web Service 服务可以让 SAP ECC 系统使用外部系统的功能和数据。 发布 Web Service 服务: 在 SAP ECC 系统中,...
1. **Web Service基础**:Web Service是一种基于互联网的、平台无关的交互方式,允许不同系统之间交换数据和服务。WSDL(Web Services Description Language)文件是XML格式,用于描述Web Service接口、操作和消息...
Java中的Web Service是一种基于XML(eXtensible Markup Language)的通信协议,用于不同系统间的交互,它允许应用程序通过网络共享功能。WSDL(Web Services Description Language)是用于定义Web Service接口的一种...
Java调用以WSDL形式发布的Web服务是一种常见的实践,特别是在集成不同系统或平台时。WSDL,即Web服务描述语言(Web Service Description Language),是一种XML格式的规范,它定义了Web服务的接口、消息结构、地址和...
5. **Web Service发布和调试**: 在Delphi 6中,你可以直接通过IDE发布Web Service,并在内置的WebBroker组件上运行,以测试和调试服务。同时,可以使用TSoapLog组件记录SOAP请求和响应的详细信息,有助于问题排查。 ...