我在Eclipse中有wsdl文件,我通过axis2插件生成客户端。
正在为源文件夹中名为com.mycompany.stub的包生成文件。
我想将生成的源文件的包名更改为com.mycompany.ws.workflow
我在哪里可以在wsdl文件中执行此操作?
答案 0 :(得分:9)
您实际上不必修改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。