我有一個描述Web服務的WSDL文件。然而,還沒有實現,但我在SoapUI中創建了一個模擬服務,它是硬編碼的,可以一次又一次地提供相同的響應。在Camel中使用Web服務
我希望Camel從磁盤向Web服務發送SOAP請求,並將響應寫入另一個文件。我想路由看起來是這樣的:
from(file:data/input/soaprequest)
.to(wsendpoint)
from(wsendpoint)
.to(file:data/input/soapresponse)
然後我addded他們兩個駱駝背景下,我不知道這是正確的做法,但即使是這樣,我仍然在努力設置webserviceendpoint。既然不能使用Spring XML,這是我有:
CxfEndpoint wsendpoint = new CxfEndpoint();
wsendpoint.setAddress("http://localhost:9001/HelloWorld");
wsendpoint.setWsdlURL("http://localhost:9001/HelloWorld?WSDL");
wsendpoint.setServiceClass("com.generated.HelloWorld");
wsendpoint.setCamelContext(camelcontext);
然後我通過wsendpoint的路線,你可以在上面看到。但沒有任何事情發生。永不停止的應用程序,它並沒有張貼在輸出文件夾中的任何迴應,只是說
INFO: Setting the server's publish address to be http://localhost:9001/HelloWorld
我也嘗試從了SoapUI發送請求,而應用程序仍在運行,並在應用程序中,我改變不了什麼得到一個404錯誤了SoapUI
我認爲它到達那裏。我仍然得到這個:錯誤處理交換。 Exchange [消息:[Body is null]]。由..blabla導致.. GenericFile不能轉換爲java.lang.String –
駱駝嘗試將交換主體轉換爲字符串,然後將其發送到cxf組件,默認情況下它不能轉換。這就是爲什麼你必須實現自己的轉換器,它將文件內容轉換爲你的cxf服務接受的方法參數所需的數據類型。 – Mike
如果參數不止一個,你如何提供參數? –