WSDL2Java赢得';不要创建所有的存根

WSDL2Java赢得';不要创建所有的存根,java,apache,wsdl,axis2,wsdl2java,Java,Apache,Wsdl,Axis2,Wsdl2java,我正在使用ApacheAxis2,更具体地说,是wsdl2java工具来生成web服务的存根,并在给定wsdl文件的情况下创建客户机 当我尝试为paypal web服务(其wsdl文件为)生成存根类时,axis不会为wsdl中包含的两个绑定生成存根,而只为第二个绑定(PayPalapiasOApBinding)生成存根 以前有人用apache的wsdl2java工具处理过这个wsdl吗?apon, 我使用Eclipse创建了一个新的Web服务客户端项目,并指向您提到的URL。我想我能够创建两个存

我正在使用ApacheAxis2,更具体地说,是wsdl2java工具来生成web服务的存根,并在给定wsdl文件的情况下创建客户机

当我尝试为paypal web服务(其wsdl文件为)生成存根类时,axis不会为wsdl中包含的两个绑定生成存根,而只为第二个绑定(PayPalapiasOApBinding)生成存根

以前有人用apache的wsdl2java工具处理过这个wsdl吗?

apon,

我使用Eclipse创建了一个新的Web服务客户端项目,并指向您提到的URL。我想我能够创建两个存根。您能尝试一下从Eclipse IDE创建存根吗?

我也一直在努力解决这个问题

简短回答:
-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指定了一个带有两个端口的服务。我们的问题是Axis2只为第二个端口“PayPalapia”创建存根,而不是为端口“PayPalAPI”创建存根。

现在,看一看Axis 2命令行选项参考(),特别是选项的描述-pn

指定要生成代码的端口名。如果未指定端口名,则将拾取(所选服务的)第一个端口


因此,指定-pn payplapi就可以做到这一点。

您并不孤单:Eclipse确实会为这两个绑定创建存根,但就在选择ApacheAxis(而不是ApacheAxis2)作为Web服务运行时时。但是对于我的程序,存根必须动态创建,这就是为什么我不能使用eclipse。。。