有没有办法使用Java列出来自wsdl url的所有操作(通过指定端点而不是来自xml)?
下面是一个示例端点。 http://www.webservicemart.com/uszip.asmx?WSDL
请帮忙。
有没有办法使用Java列出来自wsdl url的所有操作(通过指定端点而不是来自xml)?
下面是一个示例端点。 http://www.webservicemart.com/uszip.asmx?WSDL
请帮忙。
您可以为此使用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);
}
文档在这里:
您可以使用 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
我希望这对你有进一步的帮助。
谢谢帕特里克