`
tonynju
  • 浏览: 75458 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嘉善
社区版块
存档分类
最新评论

遗留系统中实用使用WSDL 1.1(RPC/Encode binding)发布Web Service的集成问题

阅读更多

目前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

 

分享到:
评论

相关推荐

    WSDL样式详解,soap中Rpc和Document的区别

    Web 服务描述语言(WSDL,Web Service Description Language)是一种XML格式,用于定义网络服务的接口,包括服务的位置、操作及如何与这些服务交互。在WSDL文档中,SOAP(Simple Object Access Protocol)绑定部分...

    Web 服务-- WSDL 1.1 理解与建模1

    Web Services Description Language ...虽然WSDL 1.1存在其复杂性和历史遗留问题,但它仍然是构建和理解Web服务接口的关键工具。通过深入学习和实践,开发者可以有效地处理这些问题,创建稳定、可靠的Web服务接口。

    WSDL1.1标准规范

    WSDL(Web Services Description Language)1.1版本作为W3C发布的官方标准规范,是描述网络服务的一套详尽指南,旨在为开发者提供一个统一、标准化的方式,来定义和描述网络服务的功能和通信协议。这份规范的重要性...

    WSDL 1.1 中文规范 doc 版.rar

    WSDL规范目前最新的版本是2.0 ,但是目前大部分还是按1.1的版本进行使用,而且1.1的内容看上去比2.0也简单些,所以我就翻译了这个版本。 作为一种《炒作过度的技术和概念》的一类,WEB Service的确是太过重量级,...

    Web Service描述语言 WSDL 详解(转)

    **Web Service描述语言(WSDL)详解** Web Service描述语言(Web Service Description Language,简称WSDL)是一种XML格式,用于定义网络服务的接口。它允许服务提供者明确地描述服务的位置、使用的消息协议以及...

    WSDL文件简介-本文介绍了如何编写一个简单的WSDL文件,并根据WSDL文件编写服务器端和客户端代码,并发布Web Service服务的过程

    本文将详细介绍如何编写一个简单的 WSDL 文件,以及如何根据该 WSDL 文件来编写服务器端与客户端的代码,并最终实现 Web Service 的发布过程。 ### WSDL 文件概述 WSDL 文件分为两个主要版本:WSDL 1.1 和 WSDL ...

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》(

    4. **Web Service开发**:包括如何定义、发布和调用Web Service,如使用WSDL(Web Service Description Language)和UDDI(Universal Description, Discovery, and Integration)。 5. **实例分析**:书中将提供...

    NC65配置WSDL文件生成工具.rar

    在IT行业中,尤其是在Web服务开发...在实际应用中,配合NC65和UAP Studio 6.5的这个WSDL文件生成工具,开发团队可以更高效地构建和维护基于Web服务的解决方案,促进跨系统的集成和数据交换,实现企业信息化的高效运作。

    WSDL中文规范1.1版

    Web Services Description Language(WSDL)1.1版是中国的一个中文规范,它是一种基于XML的格式,用于描述网络服务,将这些服务视为一组操作消息的端点。这些端点可以处理面向文档的信息或面向过程的信息。WSDL的...

    delphi 6/Kylik2 soap/Web Service程序设计篇下册+代码,非常好的教程。

    5. **Web Service发布和调试**: 在Delphi 6中,你可以直接通过IDE发布Web Service,并在内置的WebBroker组件上运行,以测试和调试服务。同时,可以使用TSoapLog组件记录SOAP请求和响应的详细信息,有助于问题排查。 ...

    不同wsdl样式对应的soap消息格式

    通过示例说明document/literal、document/literal(wrapped)、rpc/encoded、rpc/literal样式的web服务对应的soap消息格式,对于理解webservice有很大好处,尤其是根据wsdl构造soap消息,非常有价值。

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》源码

    Web Service是一种基于标准的、松散耦合的系统集成方式,通过XML和WSDL(Web服务描述语言)定义接口,使得服务提供者和消费者可以跨越不同的网络、操作系统和编程语言进行交互。本书会讲解如何使用Delphi 6和Kylix 2...

    Web Service描述语言 WSDL 详解

    我们深入探讨《Web Service描述语言 WSDL 详解》这一主题,了解WSDL为何如此关键以及其内部结构如何支撑Web服务的交互。 ### 为什么使用WSDL? WSDL,即Web Services Description Language,是一种用于描述Web服务...

    Web_Service与SAP_ECC系统服务发布与调用

    发布 Web Service 服务可以让其他系统调用 SAP ECC 系统的功能和数据,而调用外部异构系统发布的 Web Service 服务可以让 SAP ECC 系统使用外部系统的功能和数据。 发布 Web Service 服务: 在 SAP ECC 系统中,...

    java的wsdl语言实现web service的服务创建和调用实例

    Java中的Web Service是一种基于XML(eXtensible Markup Language)的通信协议,用于不同系统间的交互,它允许应用程序通过网络共享功能。WSDL(Web Services Description Language)是用于定义Web Service接口的一种...

    Java调用以WSDL形式发布的web service.doc

    Java调用以WSDL形式发布的Web服务是一种常见的实践,特别是在集成不同系统或平台时。WSDL,即Web服务描述语言(Web Service Description Language),是一种XML格式的规范,它定义了Web服务的接口、消息结构、地址和...

    Web Service描述语言 WSDL 详解.pdf

    - **Types**:定义了WSDL中使用的数据类型,通常是XSD(XML Schema Definition)的引用。 - **Messages**:描述了服务交换的数据消息的结构,包括输入和输出消息的定义。 - **PortTypes**:定义了服务的抽象接口,...

Global site tag (gtag.js) - Google Analytics