Java平台调用.NET的webService服务报错:{http://xml.apache.org/axis/}stackTrace:服务器无法处理请求。 ---> 值不能为 null。

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);
		}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值