【发布时间】:2011-06-20 13:20:41
【问题描述】:
我在 Eclipse 中有 wsdl 文件,我正在通过 axis2 插件生成客户端。
文件正在生成到源文件夹中名为 com.mycompany.stub 的包中。
我想把生成的源文件的包名改成com.mycompany.ws.workflow
在 wsdl 文件中哪里可以做?
【问题讨论】:
标签: java eclipse axis2 webservice-client
我在 Eclipse 中有 wsdl 文件,我正在通过 axis2 插件生成客户端。
文件正在生成到源文件夹中名为 com.mycompany.stub 的包中。
我想把生成的源文件的包名改成com.mycompany.ws.workflow
在 wsdl 文件中哪里可以做?
【问题讨论】:
标签: java eclipse axis2 webservice-client
您实际上不必修改 wsdl 即可实现此目的。如果您使用的是 Eclipse Helios Web 服务客户端向导,在您为生成的源代码指定输出文件夹的第二步(可选)中,有一个用于“定义命名空间到包的自定义映射”的复选框。选中该框,然后在下一个表单中定义您的自定义包映射。
<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 和其他特殊字符。您的属性文件应如下所示。
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。
【讨论】: