2013-01-23 32 views
0

我已經建立了一個簡單的帶有端點的HTTP服務,它提供了XML repsonses。我正在對該服務運行JUnit測試。以下是代碼摘錄。 getMessageBody將使用緩衝閱讀器的文件轉換爲字符串。駱駝服務端點。 requestBody強制轉換爲字符串錯誤

String src = getMessageBody(xmlname);

 MockEndpoint mock = this.context.getEndpoint("mock:resultsCheck",MockEndpoint.class); 
     mock.expectedMessageCount(2); 

     LOG.info(".. get response object"); 
     Object responseBody1 = this.template.requestBody("cxf://bean:Port",src); 
     String responseBody2 = this.template.requestBody("cxf://bean:Port",src, String.class); 

的問題是,行:

對象responseBody1 = this.template.requestBody( 「CXF://豆:端口」,SRC);

工作正常,並返回一個填充對象。

這條線返回null,我不知道爲什麼:

字符串responseBody2 = this.template.requestBody( 「CXF://豆:端口」,SRC,String.class);

任何想法?

- 編輯 -

我已經調查遠一點,它似乎是與類型轉換的問題。從類型org.apache.cxf.bus.spring.SpringBus到org.apache.camel.Component找不到合適的轉換

如何解決此問題?

回答

0

在第二次調用時,CXF Web服務是否返回非空響應?

你可以嘗試將第一個電話註釋掉,所以你只做第二個電話,看看你是否得到了答覆。

此外,第一次調用返回的對象是什麼類型。如果你執行它的toString方法,它是否返回null?

+0

webservice返回相同的對象。可能是實際鑄造的問題呢? 嘗試註釋掉第一個調用並仍然有空響應。 返回的對象的類型與我們在config中設置的代理類相匹配 – stinkyPete

+0

在Object上使用toString方法僅返回對象類型名稱 – stinkyPete