在我的项目中,我需要从现有的WSDL创建服务。使用Eclipse插件(Buttom - > Top)很容易。
所以我的问题是:
howtosmile.wsdl有以下操作:
howtolaugh.wsdl有这些操作:
具有相同的targetNamespace意味着它们将指向同一个包。如果我们幸运的话,我们不会在两个WSDL之间进行共同操作。但这里 foo1 是共同的,秒生成的服务将删除之前的。
我尝试重命名webservice的targetNamespace。但现在客户抱怨他期待另一个targetNamespace(旧的)。
我的目的是能够在同一个项目的单独包中分离每个WSDL的操作。
这是targetNamespace的出现位置,所以也许我可以改变一些而不是全部:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="LocalhellowworldService"
targetNamespace="http://my.company/"
xmlns:tns="http://my.company/">
<wsdl:types>
<xsd:schema targetNamespace="http://my.company/Imports">
<xsd:import schemaLocation="hellowworld_schema0.xsd"
</xsd:schema>
</wsdl:types>
<wsdl:message name="Ihellowworld_Foo1_InputMessage">
<wsdl:part name="parameters" element="tns:Foo1" />
</wsdl:message>
<wsdl:message name="Ihellowworld_Foo1_OutputMessage">
<wsdl:part name="parameters" element="tns:Foo1Response" />
</wsdl:message>
<wsdl:message name="Ihellowworld_Foo2_InputMessage">
<wsdl:part name="parameters" element="tns:Foo2" />
</wsdl:message>
<wsdl:message name="Ihellowworld_Foo2_OutputMessage">
<wsdl:part name="parameters" element="tns:Foo2Response" />
</wsdl:message>
<wsdl:portType name="Ihellowworld">
<wsdl:operation name="Foo1">
<wsdl:input
wsaw:Action="http://my.company/Ihellowworld/Foo1"
message="tns:Ihellowworld_Foo1_InputMessage" />
<wsdl:output
wsaw:Action="http://my.company/Ihellowworld/Foo1Response"
message="tns:Ihellowworld_Foo1_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="Foo2">
<wsdl:input
wsaw:Action="http://my.company/Ihellowworld/Foo2"
message="tns:Ihellowworld_Foo2_InputMessage" />
<wsdl:output
wsaw:Action="http://my.company/Ihellowworld/Foo2Response"
message="tns:Ihellowworld_Foo2_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BasicHttpBinding_Ihellowworld"
type="tns:Ihellowworld">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Foo1">
<soap:operation
soapAction="http://my.company/Ihellowworld/Foo1"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Foo2">
<soap:operation
soapAction="http://my.company/Ihellowworld/Foo2"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LocalhellowworldService">
<wsdl:port name="hellowworldPort" binding="tns:BasicHttpBinding_Ihellowworld">
<soap:address
location="http://localhost:8080/server/services/hellowworldPort" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
答案 0 :(得分:0)
我使用spring工具套件和Rational Application Developer。两者都是eclipse的实现。
在Spring工具套件中,我们可以选择“为命名空间定义自定义映射” 启用该复选框。在下一个屏幕上,您将获得将命名空间映射到自定义包的选项。
在RAD, 我们可以选择浏览目标包。
Eclise将有类似的选项来为生成的类选择包。