Web服务生成的客户端 - 它是否使用Holder对象作为返回值?

时间:2016-04-08 12:48:24

标签: java wsdl axis

对于生产使用的Web服务 - 客户端机制,我们正在实现与已经使用的非常类似的新功能。 新方法使用与wsdl中的先前功能相同的描述。 使用Apache Axis(1.)在Eclipse内部生成客户端。

WSDL

<wsdl:operation name="Work">
    <soap:operation soapAction="WORK" style="document"/>
    <wsdl:input>
        <soap:header message="llws:Header2" part="Header" use="literal"/>
        <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
        <soap:body use="literal"/>
    </wsdl:output>
</wsdl:operation>

<wsdl:operation name="Work">
    <wsdl:input message="test:WorkRequestObject"/>
    <wsdl:output message="test:WorkResponseObject"/>
</wsdl:operation>

令我困惑的是生成方法的不同语法。第一种方法是使用签名生成的:

public ResponseObject doSomething(RequestObject)

而第二种方法是使用签名生成的

public void doSomeOtheWork (RequestObject, javax.xml.rpc.holders.BigIntegerHolder, javax.xml.rpc.holders.StringHolder)

为什么这样做?为什么两种方法都不是使用相同的语法生成的?难道第一种方法已经存在且生成器保持不变,而第二种方法生成另一种版本/ lib则因此我得到另一种签名?

0 个答案:

没有答案