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アプリケーションがメッセージを受信して​​いて、そのフィールドの1つが正しいタイプ(または許容値)であるかどうかの検証に失敗したようです。

それがデータの問題なのか、コーディングの問題なのかは、すべて提供されていないデータ、コード、および意図に大きく依存します。

于 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 に答える