调用webService出错的一个问题,请大神解惑
shipInfoservice
调用对方的getShipInfoByMMSI()接口时,出现报错信息:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: org.springframework.jdbc.UncategorizedSQLException cannot be cast to org.apache.cxf.interceptor.Fault
at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:108)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
at com.sun.proxy.$Proxy35.getWxphhXxByCbbh(Unknown Source)
at com.cetc28.dataTransfer.service.infoGetter.gxmsa.shipInfo.GXShipInfoGetter.getShipInfoByMMSI(GXShipInfoGetter.java:212)
调用过程如下:
shipEntityListResult = shipInfoservice.getCbxxByMmsi(mmsi, true, start, PAGE_SIZE);
对方提供的接口
@WebMethod
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "getCbxxByMmsi", targetNamespace = "http://www.allhigh.com.cn/", className = "com.**.dataTransfer.service.infoGetter.gxmsa.wsClient.shipService.GetCbxxByMmsi")
@ResponseWrapper(localName = "getCbxxByMmsiResponse", targetNamespace = "http://www.allhigh.com.cn/", className = "com.**.dataTransfer.service.infoGetter.gxmsa.wsClient.shipService.GetCbxxByMmsiResponse")
public ShipEntityListResult getCbxxByMmsi(
@WebParam(name = "mmsi", targetNamespace = "") String mmsi,
@WebParam(name = "exactMatch", targetNamespace = "") boolean exactMatch,
@WebParam(name = "start", targetNamespace = "") int start,
@WebParam(name = "count", targetNamespace = "") int count);
查询方案:
javax.xml.ws.soap.SOAPFaultException,网上有个解答说是因为targetNamespace不一致导致的,但是经过比对后发现接口入参和wsdl定义的入参是都是一样的,出错原因初步排查是对面的sql语句出现了问题,请大神们看看是不是这样子