2012-10-16 75 views
0

我正在使用Spring Webservice(2.1.0)客戶端發送一個非常簡單的消息到SOAP UI模擬Web服務。 (你好世界的風格,沒有命名空間)當從javax提取數據時撒克遜IdentityTransformer.transform中的NullPointerException DOMSource

通過它從一個 提取jdom2.Element作爲jdom2.transform.JDOMSource的SpringWebserviceTemplate發送DOMSource的前。 (JDOM 2.0.2)

Transformer是Saxon 9.4.0.4。

雖然調用web服務春季模板函數sendSourceAndReceiveToResult 執行 的變換(DOMSource的,responseResult)函數當net.sf.saxon.IdentityTransformer拋出一個的NullPointerException

因爲DOMSource在那個時候可用,所以我不知道會出現什麼問題。

堆棧跟蹤告訴我的空指針在拋出: net.sf.saxon.lib.SerializerFactory.getReceiver(線239)

如果您能夠推測可能的原因,這將對我極大地有幫助。

回答

1

請注意,報告撒克遜問題的最佳方式是使用位於http://saxonica.plan.io的Saxon論壇或SourceForge上的撒克遜幫助郵件列表。我們嘗試監視StackOverflow上的問題,但通常在我們注意到它們前幾天。

有了這樣的問題,其原因往往是一些軟件(如Spring Webservice)使用JAXP TransformerFactory機制來加載它在類路徑中找到的任何XSLT轉換器,但實際上並沒有做測試確保它可以與任意XSLT變換器一起使用;人們通常只使用JDK提供的缺省值進行測試。從你的問題來看,你是否確實打算讓它使用撒克遜還不清楚。

線SerializerFactory 239實際上是做

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

(具有測試結果是否是種結果它識別中的一個);所以它看起來像結果(這可能是傳遞給transform()方法的值)爲空。檢查responseResult值的內容。