0
我正在做一個開發,將SOAP
請求發送到遠程Web服務並使用apache Camel
獲得響應。向遠程Web服務發送SOAP請求並使用apache獲取響應Camel
在這種情況下,我使用下面提到的WSD1的cxf-codegen-plugin
成功生成了客戶端wsdl2java代碼。
- 樣品WSDL網址:
http://www.webservicex.net/stockquote.asmx?WSDL
,並做一些研究之後,我在下面的示例代碼創建發送SOAP請求,在那裏定義的Web服務,並使用所產生的獲得與Apache駱駝響應客戶端代碼。
CamelContext context = new DefaultCamelContext();
HttpComponent httpComponent = new HttpComponent();
context.addComponent("http", httpComponent);
ProducerTemplate template = context.createProducerTemplate();
GetQuote getQuote = new GetQuote();
getQuote.setSymbol("test123");
GetQuoteResponse getQuoteResponse = template.requestBody("http://www.webservicex.net/stockquote.asmx",getQuote, GetQuoteResponse.class);
System.out.println(getQuoteResponse);
但它給出了以下錯誤。
Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: [email protected] of type: net.webservicex.GetQuote on: Message[ID-namal-PC-33172-1469806939935-0-1]. Caused by: No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected] Exchange[ID-namal-PC-33172-1469806939935-0-2]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected]]
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected]
我在這裏錯過了什麼?數據綁定?還是其他什麼?我使用cxf生成客戶端代碼,因此我如何使用cxf發送此代碼?
我只是想發送一個SOAP請求到遠程Web服務並獲得使用Apache Camel的響應。
- 駱駝版本:2.9.0
- Java版本:1.7.x/1.8.x的
非常感謝bgossit!它爲此工作正常。我有一個問題。如果發送請求主體,如果它需要多個參數。例如:如何爲以下類似的調用發送請求參數(messageHeader,securityHeader,sessionCreateRQ)(SessionCreateRS sessionCreateRS = sessionCreatePortType.sessionCreateRQ(messageHeader,securityHeader,sessionCreateRQ); //這是來自JAX-WS) – namalfernandolk
哦,我有一個愚蠢的答案..我只是將它們添加到列表併發送。有效!請分享更好的答案。 – namalfernandolk