1

我正在使用 Apache axis2,更具体地说,使用 wsdl2java 工具来为 Web 服务生成存根并在给定 wsdl 文件的情况下创建客户端。

当我尝试为 paypal Web 服务(它的 wsdl 文件在这里)生成存根类时,轴不会为包含到 wsdl 的两个绑定生成存根,而只会为第二个(PayPalAPIAASoapBinding)生成存根

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

4

2 回答 2

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就可以了。

于 2010-09-25T10:58:53.520 回答
0

apon,
我使用 Eclipse 并创建了一个新的 Web Service Client 项目并指向您提到的 URL。我想我能够创建两个存根。您能否尝试一次从 Eclipse IDE 创建存根?

于 2010-08-11T13:05:07.363 回答