SOAP UI API通过Java代码设置SOAP消息部分值
在的最后一篇文章之后,我创建了一个客户端,用于向SOAP RPC web服务发送请求 首先,我通过以下方法创建了XML项目文件:SOAP UI API通过Java代码设置SOAP消息部分值,java,web-services,soapui,xml-rpc,Java,Web Services,Soapui,Xml Rpc,在的最后一篇文章之后,我创建了一个客户端,用于向SOAP RPC web服务发送请求 首先,我通过以下方法创建了XML项目文件: public static void runSoap() throws Exception { String projectFile = "C:/Test/TestProjectA-soapui-project.xml"; SoapUI.setSoapUICore(new StandaloneSoapUICore(true)); WsdlPr
public static void runSoap() throws Exception {
String projectFile = "C:/Test/TestProjectA-soapui-project.xml";
SoapUI.setSoapUICore(new StandaloneSoapUICore(true));
WsdlProject project = new WsdlProject(projectFile);
int c = project.getInterfaceCount();
for(int i=0;i<c;i++) {
WsdlInterface wsdl = (WsdlInterface) project.getInterfaceAt(i);
String soapVersion = wsdl.getSoapVersion().toString();
System.out.println("The SOAP version ="+soapVersion);
System.out.println("The binding name = "+wsdl.getBindingName());
int opc = wsdl.getOperationCount();
System.out.println("Operation count ="+opc);
String result="";
for(int j=0;j<opc;j++){
WsdlOperation op = wsdl.getOperationAt(j);
String opName = op.getName();
System.out.println("OPERATION:"+opName);
WsdlRequest req = op.getRequestByName("Req_"+soapVersion+"_"+opName);
req.setEndpoint("<my_WSDL_ENDPOINT>");
WsdlSubmitContext wsdlSubmitContext = new WsdlSubmitContext(req);
WsdlSubmit<?> submit = (WsdlSubmit<?>) req.submit(wsdlSubmitContext, false);
Response response = submit.getResponse();
result = response.getContentAsString();
System.out.println("The result ="+result);
}
}
public static void runSoap()引发异常{
String projectFile=“C:/Test/TestProjectA soapui project.xml”;
SoapUI.setSoapUICore(新标准soapuicore(真实));
WsdlProject=新的WsdlProject(项目文件);
int c=project.getInterfaceCount();
对于(int i=0;i submit=(WsdlSubmit)请求提交(wsdlSubmitContext,false);
Response=submit.getResponse();
字符串结果=response.getContentAsString();
System.out.println(“结果=”+结果);
}
要清楚,SOAP信封主体是:
<soapenv:Body>
<urn:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<user xsi:type="xsd:string">?</user>
<pwd xsi:type="xsd:string">?</pwd>
<keycartella xsi:type="xsd:string">?</keycartella>
</urn:login>
?
?
?
我想替换默认值“?”通过Java代码使用实际值,而不是更改XML文件。您能够解决此问题吗?我遇到了上述问题,我使用Netbeans而不是Eclipse解决了此问题。您需要遵循此过程,您将能够编译客户端。如果在编译过程中收到错误,请添加javamail-mailapi-1.4.jar和javax.XML.rpc-3.1.jar到您的项目libs。这可能会解决这个问题。您能解决这个问题吗?我正好遇到了上面的问题。我已经使用Netbeans而不是Eclipse解决了这个问题。您需要遵循此过程,您将能够编译客户端。如果在编译过程中收到错误,请添加javamail-mailapi-1.4.jar和javax.xml.rpc-3.1.jar to您的项目库。这可能会解决问题。
<soapenv:Body>
<urn:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<user xsi:type="xsd:string">?</user>
<pwd xsi:type="xsd:string">?</pwd>
<keycartella xsi:type="xsd:string">?</keycartella>
</urn:login>