0

有没有办法使用Java列出来自wsdl url的所有操作(通过指定端点而不是来自xml)?

下面是一个示例端点。 http://www.webservicemart.com/uszip.asmx?WSDL

请帮忙。

4

2 回答 2

2

您可以为此使用eviware/soapui 的 API

您可以使用指定的 WSDL 创建一个接口,然后使用它来获取操作。

    int operationCount = wsdlInterface.getOperationCount();

    for (int i = 0; i < operationCount; i++){

        WsdlOperation wsdlOperation = wsdlInterface.getOperationAt(i);
        String operationName = wsdlOperation.getName();
        // you can use this name, add to an arraylist etc.

        allOperations.add(wsdlOperation);

        WsdlTestCase testCase = generateTestCase(wsdlTestSuite, operationName);
        WsdlTestStep testStep = generateTestStep(wsdlOperation, testCase, operationName);

    }

文档在这里:

https://www.soapui.org/apidocs/allclasses-noframe.html

于 2017-12-12T08:43:10.343 回答
1

您可以使用 XPath 来获取标签: XPath Syntax

<wsdl:binding name="USZipSoap" type="tns:USZipSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ValidateZip">
<soap:operation soapAction="http://webservicemart.com/ws/ValidateZip" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

使用 xpath 表达式:

//wsdl:operation

应该返回所有节点。Java 的 xpath 库是Jaxen

我希望这对你有进一步的帮助。

谢谢帕特里克

于 2013-10-29T07:00:37.893 回答