5

マーシャリング中に次の例外が発生しました

Exception in thread "main" com.sun.xml.internal.ws.encoding.soap.DeserializationException: Failed to read a response: javax.xml.bind.UnmarshalException
 - with linked exception:
[javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1127]
Message: XML document structures must start and end within the same entity.]

[row,col]:[1,1127] が配置されている xml を参照してください。提案してください。

4

4 に答える 4

16

JVMオプションで-Djaxb.debug=trueを指定すると、コンソールにJAXBデバッグ出力を表示できます。さらに、unmarshallerにイベントハンドラーを設定することもできます。unmarshaller.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());

于 2012-03-06T10:50:31.433 に答える
2

SOAP メッセージをデシリアライズしているようです。-Djavax.net.debug=allJVM オプションに追加することで、HTTP デバッグを有効にできます。これにより、受信メッセージがダンプされます。入力が表示されたら、開始タグと終了タグが一致していることを確認します (エラー メッセージの 2 番目の部分を参照)。

于 2011-07-13T15:17:58.247 に答える
1

XMLStreamExceptionに例外ブレークポイントを作成することをお勧めします。少なくとも日食はこれを可能にします。したがって、例外がスローされたポイントを確認できます。おそらくそれは役立つでしょう。

ところで、1、1127が完全に間違っているかどうかはわかりません。最初に(念のため)この位置に違法なものがないことを確認してください。次に、ファイルの1127番目の文字ではないことを確認します。たとえば、ファイルが行区切り文字が\ nであるUnixで生成されたが、行区切り文字が\ r \ nであるWindowsでコードを実行した場合、システムはおそらく改行を認識しないため、XMLは非常に長い単一行。

于 2011-07-13T15:10:23.447 に答える