Webservice遇到Client received SOAP Fault from server: 服务器无法处理请求,未将对象引用设置到对象的实例。

2023-09-25 14 0

Exception in thread "main" com.sun.xml.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: 
服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。 Please see the server log to find more detail regarding exact cause of the failure.at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:126)at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:252)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:181)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:262)at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:128)at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:102)at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:154)at com.sun.proxy.$Proxy32.getCountryCityByIp(Unknown Source)at unwrapped.MAIN.main(MAIN.java:12)

Webservice 通过wsimport 生成的非包装类在运行时出现这个问题!!

原因:

从本质上讲,非包装产生的接口里面的方法应该传入的参数应该是一个对象,我们看看具体的接口文件中我们调用的方法

/*** * @param parameters* @return*     returns ipC.GetCountryCityByIpResponse*/@WebMethod(action = "http://WebXml.com.cn/getCountryCityByIp")@WebResult(name = "getCountryCityByIpResponse", targetNamespace = "http://WebXml.com.cn/", partName = "parameters")public GetCountryCityByIpResponse getCountryCityByIp(@WebParam(name = "getCountryCityByIp", targetNamespace = "http://WebXml.com.cn/", partName = "parameters")String parameters);

里面的parameter的属性竟然是String 类型的,将其改成:

@WebParam(name = "getCountryCityByIp"中getCountryCityByIp类型,再在main函数中将参数打包成对象就可以进行访问了

这样就可以解决了!!

代码编程
赞赏

相关文章

springBoot + activiti6+在线编辑器 整合 附带flowable的demo
并发编程之两阶段终止模式 保护性暂停 顺序与交替模式 总结
事务实践 手动创建提交事务 复现幻读 枚举类应用
Excel读取并利用工具自动建表 已完善
JS处理小数点后数的方法
笔记_ionic2 app从创建到打包