使用 java 代码从 soap 服务中提取数据
Extract data from soap service using java code
我正在尝试使用 soapui java 代码从 wsdl url 中提取响应数据。一切正常,但问题是响应。
作为回应,我得到的是 ? 而不是正确的数据。
Eclipse 控制台结果
但是当我尝试使用 soapui 访问 wsdl url 时它工作正常。
检查我的代码
package src.com;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlImporter;
import com.eviware.soapui.model.iface.Operation;
public class Test {
public static void main(String[] args) throws Exception {
WsdlProject project = new WsdlProject();
WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:8080/SoapService/services/TestService?wsdl");
WsdlInterface wsdl = wsdls[0];
for (Operation operation : wsdl.getOperationList()) {
WsdlOperation wsdlOperation = (WsdlOperation) operation;
System.out.println("Request:\n"+wsdlOperation.createRequest(true));
System.out.println("\nResponse:\n"+wsdlOperation.createResponse(true));
}
}
}
检查罐子
在 SoapUI 应用程序中,您实际上是在调用 Web 服务并获得响应。在您的示例 java 代码中,您只是从 WSDL 文件生成响应 XML 而不是实际调用 Web 服务,并且它默认任何必需的值都有一个 ?。如果您在 SoapUI 应用程序中生成相同的响应,您将看到相同的 ?为 findAllReturned 元素设置。
您可以使用 java SoapUI 的 WSDLSubmit class 调用 Web 服务并获得响应。
这个 linked 问题的答案显示了您将如何使用 SoapUI java api 实际调用 Web 服务的代码示例:
并且这个 link 有其他使用 WSDLSubmit class 的例子:
http://www.programcreek.com/java-api-examples/index.php?api=com.eviware.soapui.impl.wsdl.WsdlSubmit
我正在尝试使用 soapui java 代码从 wsdl url 中提取响应数据。一切正常,但问题是响应。
作为回应,我得到的是 ? 而不是正确的数据。
Eclipse 控制台结果
但是当我尝试使用 soapui 访问 wsdl url 时它工作正常。
检查我的代码
package src.com;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlImporter;
import com.eviware.soapui.model.iface.Operation;
public class Test {
public static void main(String[] args) throws Exception {
WsdlProject project = new WsdlProject();
WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:8080/SoapService/services/TestService?wsdl");
WsdlInterface wsdl = wsdls[0];
for (Operation operation : wsdl.getOperationList()) {
WsdlOperation wsdlOperation = (WsdlOperation) operation;
System.out.println("Request:\n"+wsdlOperation.createRequest(true));
System.out.println("\nResponse:\n"+wsdlOperation.createResponse(true));
}
}
}
检查罐子
在 SoapUI 应用程序中,您实际上是在调用 Web 服务并获得响应。在您的示例 java 代码中,您只是从 WSDL 文件生成响应 XML 而不是实际调用 Web 服务,并且它默认任何必需的值都有一个 ?。如果您在 SoapUI 应用程序中生成相同的响应,您将看到相同的 ?为 findAllReturned 元素设置。
您可以使用 java SoapUI 的 WSDLSubmit class 调用 Web 服务并获得响应。
这个 linked 问题的答案显示了您将如何使用 SoapUI java api 实际调用 Web 服务的代码示例:
并且这个 link 有其他使用 WSDLSubmit class 的例子: http://www.programcreek.com/java-api-examples/index.php?api=com.eviware.soapui.impl.wsdl.WsdlSubmit