0

我不是 Java 的初学者(我是一名 .NET 开发人员),但是在通过代理类调用 WebMethod 时我必须修复 Java 错误。在 .NET 中,我可以毫无问题地调用它,但在 Java 中,会发生以下情况:

java.lang.IllegalArgumentException

at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at weblogic.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1411)
    at weblogic.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1613)
    at weblogic.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1174)
    at weblogic.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:399)
    at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:1147)
    at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
    at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:147)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.verizon.vmw.csgw.ws.updateDOJob.v4_4.wsdl.UpdateDOJobServiceSoapBindingStub.updateDOJob(UpdateDOJobServiceSoapBindingStub.java:206)
    at com.verizon.vmw.csgw.ws.updateDOJob.v4_4.wsdl.UpdateDOJobServiceProxy.updateDOJob(UpdateDOJobServiceProxy.java:50)
    at rm.interfaces.wfadosnd.WfaDoSndWorker.updateDOJobComments(WfaDoSndWorker.java:1111)
    at rm.interfaces.wfadosnd.WfaDoSndWorker.checkEtaAsgn(WfaDoSndWorker.java:507)
    at rm.interfaces.wfadosnd.WfaDoSndWorker.resequenceDODispatches(WfaDoSndWorker.java:541)
    at rm.interfaces.wfadosnd.WfaDoSndWorker.processOutboundRows(WfaDoSndWorker.java:283)
    at rm.interfaces.wfadosnd.WfaDoSndWorker.run(WfaDoSndWorker.java:112)
    at rm.util.WorkerThread.run(ThreadPool.java:152)

有谁知道可能导致此异常的原因是什么?

4

4 回答 4

1

使用 Wireshark 检查通过网络传输的内容并将 .NET 请求与 java 请求进行比较。

于 2011-08-01T17:16:05.367 回答
0

看起来您的 Web 应用程序正在接收一条消息,并且其中一个字段未能验证它是正确的类型(或可接受的值)。

这是数据问题还是编码问题在很大程度上取决于未提供的数据、代码和意图。

于 2011-08-01T17:15:33.630 回答
0

从堆栈跟踪中的类名可以看出,在反序列化 Web 服务响应期间会引发异常。

异常本身非常通用,因此几乎没有有用的信息。

尝试查看通过网络发送的响应,或在 Eclipse 中设置异常断点,以便检查引发异常的堆栈帧以获取额外的上下文。(为了便于解释出错的原因,您可能需要获取 Web 服务堆栈的源代码)。

于 2011-08-01T17:21:45.863 回答
0

在代码中查找为用户输入解析的内容

像这样Integer i = Integer.parseInt("string");

并且“字符串”不包含任何有效数字

于 2011-08-01T17:22:12.460 回答