0

Spring Webservice (2.1.0) Clientを使用して、非常に単純なメッセージを Soap UI Mock Webservice に送信しています。(Hello World スタイル、名前空間なし)

SpringWebserviceTemplate を介して DOMSource を送信する前に、jdom2.Element からjdom2.transform.JDOMSourceとして抽出されます。(JDOM 2.0.2)

Transformer は Saxon 9.4.0.4 です。

Spring Webservice テンプレート関数 sendSourceAndReceiveToResult を呼び出している間、net.sf.saxon.IdentityTransformerは、 transform(DOMSource,responseResult)関数の実行時にNullPointerExceptionをスローします。

その時点で DOMSource が利用可能であるため、何が問題になったのかわかりません。

Stacktrace は、Nullpointer が net.sf.saxon.lib.SerializerFactory.getReceiver (line 239)でスローされたことを示しています。

考えられる原因を推測していただけると大変助かります。

4

1 に答える 1

1

Saxon の問題を報告する最善の方法は、http://saxonica.plan.ioの Saxon フォーラム、または SourceForge の saxon-help メーリング リストを使用することです。StackOverflow で質問を監視するように努めていますが、多くの場合、質問に気付くまでに数日かかります。

この種の問題の原因は、多くの場合、一部のソフトウェア (Spring Webservice など) が JAXP TransformerFactory メカニズムを使用して、クラスパスで見つけた XSLT トランスフォーマーをロードしていますが、実際には動作を確認するためのテストを行っていません。任意の XSLT トランスフォーマーを使用。多くの場合、JDK が提供するデフォルトのものだけでテストします。あなたの質問からは、実際にサクソンを使用するつもりだったかどうかは明らかではありません。

SerializerFactory の 239 行目は実際に行っている

throw new IllegalArgumentException("Unknown type of result: " + result.getClass());

(result が、それが認識する種類の Result の 1 つであるかどうかをテストした後); そのため、result (おそらく transform() メソッドに渡される値) が null のように見えます。responseResult 値の内容を確認してください。

于 2012-10-17T23:24:36.683 に答える