SOAP

在这里插入图片描述

Java测试代码

在这里插入图片描述

java测试结果

在这里插入图片描述

SoapUI测试工具测试结果

在这里插入图片描述

问题解决

为了Java能够调用WebService的方法,所以。NETP写的WebServiced的每个方法都要声明为Rpc方法,即添加"[SoapRpcMethod…]".
例如:[WebMethod]
[SoapRpcMethod(Use=SoapBindingUse.Literal,Action= http://tempuri.org/HelloWorld", RequestNamespace = “http://tempuri.org/”, ResponseNamespace = “http://tempuri.org/”)]

完整的java代码

String inXml = "<request><requestHead><busCode>1024</busCode><terminalNo>LDKQZZJ001</terminalNo><operNo>LDKQZZJ001</operNo><tradeDate>20200508</tradeDate><tradeTime>141908</tradeTime><mzlx>6</mzlx><transNo>000000</transNo></requestHead><data><requestPage>1</requestPage><pageSize>15</pageSize></data></request>";
		// 指出service所在完整的URL
		String url = "http://192.168.0.117:10139/his_w.asmx";
		// 调用接口的targetNamespace
		// targetNamespace 就是你用浏览器打开url 路径加上?wsdl,即http://xxx/WebService.asmx?wsdl
		// 中的targetNamespace属性值
		String targetNamespace = "http://192.168.0.117:10139/his_w.asmx?WSDL/";
		// 所调用接口的方法method
		String method = "his_f";
		String name="XMLRequset";

public static void test4(String xml,String url,String targetNamespace,String method,String name) throws ServiceException, MalformedURLException, RemoteException{
		  String service_url =url;
		  Service ser = new Service();
		  Call call = (Call) ser.createCall();
		  call.setTargetEndpointAddress(new java.net.URL(service_url));
		  QName opAddEntry = new QName(targetNamespace,method);
		  call.setOperationName(opAddEntry);
		  call.addParameter(name, XMLType.XSD_STRING, ParameterMode.IN);
		  call.setReturnType(XMLType.XSD_STRING);  Object[] opAddEntryArgs = new Object[] {xml };
		  String result = (String) call.invoke(opAddEntryArgs);
		  try {
			call.invoke(targetNamespace, method, opAddEntryArgs);
		} catch (Exception e) {
			e.printStackTrace();
		}
		  System.out.println("result:" + result);
		}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐