【问题标题】:Define the custom namespace to package mapping of generated file from wsdl - Axis2 eclipse定义自定义命名空间以封装从 wsdl 生成的文件的映射 - Axis2 eclipse
【发布时间】:2011-06-20 13:20:41
【问题描述】:

我在 Eclipse 中有 wsdl 文件,我正在通过 axis2 插件生成客户端。

文件正在生成到源文件夹中名为 com.mycompany.stub 的包中。

我想把生成的源文件的包名改成com.mycompany.ws.workflow

在 wsdl 文件中哪里可以做?

【问题讨论】:

    标签: java eclipse axis2 webservice-client


    【解决方案1】:

    您实际上不必修改 wsdl 即可实现此目的。如果您使用的是 Eclipse Helios Web 服务客户端向导,在您为生成的源代码指定输出文件夹的第二步(可选)中,有一个用于“定义命名空间到包的自定义映射”的复选框。选中该框,然后在下一个表单中定义您的自定义包映射。

    编辑 1:

    链接到Official Documentation

    编辑 2:

    WSDL

    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://mycompany.com/MyService.wsdl"
    xmlns:scm="http://mycompany.com/MyService.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    targetNamespace="http://mycompany.com/MyService.wsdl">
    ...
    

    对于如上所示的简单 wsdl,自定义映射如下所示。

    http://mycompany.com/MyService.wsdl - com.mycompany.ws.workflow http://mycompany.com/MyService.xsd - com.mycompany.ws.workflow.schema

    您可以单击添加并输入名称空间和包名称,或者您可以将映射存储在属性文件中,然后单击导入以一次添加所有内容。我更喜欢属性文件。如果要使用属性文件,还必须转义名称空间 URL 和其他特殊字符。您的属性文件应如下所示。

    nsmapping.properties

    http\://mycompany.com/MyService.wsdl=com.mycompany.ws.workflow http\://mycompany.com/MyService.xsd=com.mycompany.ws.workflow.schema

    摘自官方文档。

    属性文件的内容必须采用 namespace=package 格式。您需要转义属性文件中的一些特殊字符。例如http://someNamespace=somePackage 应该是 http://someNamespace=somePackage。否则,冒号 (:) 将被视为分隔符,导致尝试将 http 映射到 //someNamespace=somePackage。

    【讨论】:

    • 你能提供一个自定义包映射的例子吗?我要在那里插入什么?
    • @TMan 我应该把 nsmapping.properties 文件放在哪里?
    猜你喜欢
    • 2018-07-25
    • 1970-01-01
    • 2019-06-23
    • 2011-09-07
    • 2019-10-15
    • 2020-08-31
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    相关资源
    最近更新 更多