2

自動生成されたServiceBindingStub.javaを使用すると、このエラーが発生します。WebService側は正常に機能しているため、このエラーはコードに含まれている必要がありますが、コードは自動生成されるため、機能しない理由がわかりません。他のいくつかの呼び出しは正常に機能しますが、これは機能しません。この呼び出しには更新が含まれていましたが、他の動作中の呼び出しはWebServiceからデータをフェッチしているだけです。

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: org.xml.sax.SAXParseException: Premature end of file.
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    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.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    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)
4

4 に答える 4

7

これは、接続先のサービスが SOAP 応答ではなく、テキストまたは HTML を返す場合に発生します。ブラウザーで URL を開くか、SOAP UIなどの SOAP デバッガーを使用して、サービスから何が返されるかを確認してください。

于 2009-11-10T12:32:51.863 に答える
2

私はかつて同じ問題を抱えていました。私の場合、タグ (画像) 間に「バイナリ データ」を含むメッセージを受信しました。Axis は固定サイズのバッファーを使用してデータを読み取りましたが、バッファーがいっぱいになると、処理が続行され、同期が失われました。

実際、スタブ コードを段階的にデバッグすることで、xml ファイル内のタグまたはパーツを見つけることができるはずです。問題が簡単に解決できるという保証はありませんが、(a) スタブが正しく生成されていないか、(b) xml ファイルの形式が正しくないか、使用されているスキーマに対して有効でないというヒントが得られる可能性があります。スタブを生成します。

幸運を!(私は私の問題を解決しませんでした..)

于 2009-11-10T12:34:48.700 に答える
0

Superfilinの回答に従って、この問題が発生しました(そして解決しました)。<beanMapping>結局、問題は、deployment.wsdd ファイルで返していたクラスの 1 つに を追加していないことにあることが判明しました。応答にそのクラスが含まれる場合はいつでも、代わりに完全に空のメッセージ本文が返されます。

于 2010-08-18T12:22:08.157 に答える
0

私たちも同じ問題に直面しました。ただし、コンテンツにはいくつかの特殊文字があります。これらの特殊文字を削除したところ、問題なく動作しました。

于 2013-01-16T10:30:15.040 に答える