我正在使用Apache axis2,更具体地说,是wsdl2java工具,在给定wsdl文件的情况下,为Web服务生成存根并创建客户端。
当我尝试为paypal Web服务生成存根类(其wsdl文件为here)时,轴不会为包含在wsdl中的绑定生成存根,而只为第二个绑定生成存根(PayPalAPIAASoapBinding)< / p>
之前有没有人使用apache的wsdl2java工具处理这个wsdl?
答案 0 :(得分:2)
我也一直在努力解决这个问题。
简短回答:
将 -pn PayPalAPI 附加到Axis2命令。
答案很长:
看一下PayPal WSDL的以下几行:
<wsdl:service name="PayPalAPIInterfaceService">
<wsdl:port name="PayPalAPI" binding="ns:PayPalAPISoapBinding">
<wsdlsoap:address location="https://api.sandbox.paypal.com/2.0/"/>
</wsdl:port>
<wsdl:port name="PayPalAPIAA" binding="ns:PayPalAPIAASoapBinding">
<wsdlsoap:address location="https://api-aa.sandbox.paypal.com/2.0/"/>
</wsdl:port>
</wsdl:service>
显然,WSDL指定了1个具有2个端口的服务。我们的问题是Axis2只为第二个端口“PayPalAPIAA”创建存根,但不为端口“PayPalAPI”创建存根。
现在,看一下Axis 2命令行选项参考(http://ws.apache.org/axis2/tools/1_2/CodegenToolReference.html#cmdref),具体来说,请参阅 -pn 选项的说明:
“指定要生成代码的端口名称。如果未指定端口名称,则将选择第一个端口(所选服务的端口)。”
因此,指定 -pn PayPalAPI 可以解决问题。
答案 1 :(得分:0)
APON,
我使用Eclipse并创建了一个新的Web Service Client项目,并指向您提到的URL。我想我能够创建两个存根。你能尝试一次从Eclipse IDE创建存根吗?