使用java代码从soap服务中提取数据

时间:2017-06-08 12:45:06

标签: java web-services soap wsdl soapui

我想使用soapui java代码从 wsdl url中提取响应数据。一切都很好,但问题在于回应。

作为回应我正在而不是获取正确的数据。

Eclipse控制台结果

eclipse console result

但是当我想使用soapui点击 wsdl 网址时,它工作正常。enter image description here

检查我的代码

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));

        }
    }
}

检查JAR

enter image description here

1 个答案:

答案 0 :(得分:1)

在SoapUI应用程序中,您实际上正在调用Web服务并获得响应。在您的示例Java代码中,您只是从WSDL文件生成响应XML,而不是实际调用Web服务,并且它默认任何所需的值都具有?。如果在SoapUI应用程序中生成相同的响应,您会看到相同的响应吗?为findAllReturned元素设置。

您可以使用java SoapUI的WSDLSubmit类来调用Web服务并获得响应。

这个链接问题的答案显示了一个代码示例,说明如何使用SoapUI java api对Web服务进行实际调用: https://stackoverflow.com/a/14814524/8127149

此链接还有其他使用WSDLSubmit类的示例: http://www.programcreek.com/java-api-examples/index.php?api=com.eviware.soapui.impl.wsdl.WsdlSubmit