camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kafe <eric.useless.m...@gmail.com>
Subject CFX - problem when receiving web service response
Date Tue, 15 Nov 2011 16:26:53 GMT
Hi,

I'm trying to use Camel as a web service proxy.
I've then configured 2 CXF endpoints :

 <cxf:cxfEndpoint id="helloServiceEndpoint" address="/helloservice"
     	serviceClass="com.test.HelloService" />
     	
<cxf:cxfEndpoint id="helloServiceDistantEndpoint"
        address="http://localhost:8088/mockHelloService"
        serviceClass="com.test.HelloService" />

and a simple route :

<route id="traiterDemandeSoap">
	<from uri="cxf:bean:helloServiceEndpoint" />
	<to uri="log:input"/>
	<to uri="cxf:bean:helloServiceDistantEndpoint" />
</route>

Everything is packaged as a war and deployed in JBoss 5.1.0.

To call my route as a webservice, i use SoapUI.
I also use SoapUI on port 8088 as a mock for the distant webservice.

If i directly call the SoapUI mock from SoapUI, everything is ok but when i
use my route, it seems that CXF has a problem to deal with the response :

17:15:06,340 ERROR [DefaultErrorHandler] Failed delivery for exchangeId:
pc-dev-49-54952-1321373519881-0-1. Exhausted after delivery attempt: 1
caught: 
java.lang.RuntimeException: Couldn't parse stream.
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1181)
	at
org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:104)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:783)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1499)
	at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:371)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0x8b
(at char #2, byte #-1)
	at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:536)
	at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:585)
	at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:610)
	at
com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:316)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1179)
	... 9 more
Caused by: java.io.CharConversionException: Invalid UTF-8 start byte 0x8b
(at char #2, byte #-1)
	at com.ctc.wstx.io.UTF8Reader.reportInvalidInitial(UTF8Reader.java:303)
	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:189)
	at
com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:250)
	at
com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:133)
	at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:531)
	... 13 more

When i analyse the network traffic with wireshark, there are four http
requests :
- a POST that is sent by SoapUI to call the route
- a second POST request sent by Camel to call the distant web service
(SoapUI mock)
- the response to the previous POST with a http status 200
- a HTTP 500 (internal servlet error) due to the previous stack trace

What i see is that the POST response is in gzip format (Content-Encoding:
gzip\r\n) and maybe this is the problem ??


I really need help.


--
View this message in context: http://camel.465427.n5.nabble.com/CFX-problem-when-receiving-web-service-response-tp4994825p4994825.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message