« Return to Thread: CXF WS Proxy Hangs

Re: CXF WS Proxy Hangs

by redijedi :: Rate this Message:

Reply to Author | View in Thread

Here's some of the stack. Perhaps this is really simple and I'm just
an idiot. Please, I'd love that to be the case. Just please clue me
in. Thanks:

[10-03 23:05:22] ERROR InputStreamRequestEntity [connector.http.0.receiver.4]: c
hunked stream ended unexpectedly
Unable to get the current logfile size with stat: The filename, directory name,
or volume label syntax is incorrect. (0x7b)
java.io.IOException: chunked stream ended unexpectedly
        at org.apache.commons.httpclient.ChunkedInputStream.getChunkSizeFromInpu
tStream(ChunkedInputStream.java:252)
        at org.apache.commons.httpclient.ChunkedInputStream.nextChunk(ChunkedInp
utStream.java:221)
        at org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStr
eam.java:176)
        at org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStr
eam.java:196)
        at org.apache.commons.httpclient.methods.InputStreamRequestEntity.buffer
Content(InputStreamRequestEntity.java:136)
        at org.apache.commons.httpclient.methods.InputStreamRequestEntity.getCon
tentLength(InputStreamRequestEntity.java:187)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.getReques
tContentLength(EntityEnclosingMethod.java:336)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.addConten
tLengthRequestHeader(EntityEnclosingMethod.java:406)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.addReques
tHeaders(EntityEnclosingMethod.java:374)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(Http
MethodBase.java:2177)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodB
ase.java:2060)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j
ava:1096)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
pMethodDirector.java:398)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:346)
        at org.mule.transport.http.HttpClientMessageDispatcher.execute(HttpClien
tMessageDispatcher.java:109)
        at org.mule.transport.http.HttpClientMessageDispatcher.doSend(HttpClient
MessageDispatcher.java:243)
        at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDisp
atcher.java:157)
        at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1890
)
        at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoin
t.java:76)
        at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327)
        at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213)
        at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(Ab
stractOutboundRouter.java:148)
        at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.
java:99)
        at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboun
dRouter.java:155)
        at org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutb
oundRouter.java:68)
        at org.mule.routing.outbound.OutboundPassThroughRouter.route(OutboundPas
sThroughRouter.java:70)
        at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTrans
action(DefaultOutboundRouterCollection.java:64)
        at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.
java:45)
        at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(Defau
ltOutboundRouterCollection.java:69)
        at org.mule.service.AbstractService.sendToOutboundRouter(AbstractService
.java:904)
        at org.mule.model.seda.SedaService.doSend(SedaService.java:238)
        at org.mule.service.AbstractService.sendEvent(AbstractService.java:510)
        at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:354)
        at org.mule.routing.inbound.DefaultInboundRouterCollection.send(DefaultI
nboundRouterCollection.java:221)
        at org.mule.routing.inbound.DefaultInboundRouterCollection.route(Default
InboundRouterCollection.java:181)
        at org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageList
ener.onMessage(AbstractMessageReceiver.java:603)
        at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessa
geReceiver.java:346)
        at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessa
geReceiver.java:287)
        at org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(Http
MessageReceiver.java:271)
        at org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest
(HttpMessageReceiver.java:229)
        at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessag
eReceiver.java:189)
        at org.mule.work.WorkerContext.run(WorkerContext.java:310)
        at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.run
Worker(ThreadPoolExecutor.java:1061)
        at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor
ker.run(ThreadPoolExecutor.java:575)
        at java.lang.Thread.run(Unknown Source)


On Fri, Oct 3, 2008 at 12:56 PM, Todd Orr <torr0101@...> wrote:

> Here's some of the Mule stdout if it helps:
>
> ********************************************************************************
>
> ERROR 2008-10-03 12:08:05,793 [connector.http.0.receiver.4]
> org.mule.service.DefaultServiceExceptionStrategy:
> ********************************************************************************
> Message               : Failed to route event via endpoint:
> DefaultOutboundEndpoint{endpointUri=http://localhost:8080/service/soap,
> connector=HttpConnector{this=26f9e5, started=true, initialised=true,
> name='connector.http.0', disposed=false,
> numberOfConcurrentTransactedReceivers=4,
> createMultipleTransactedReceivers=true, connected=true,
> supportedProtocols=[http], serviceOverrides=null},
> transformer=[ObjectToHttpClientMethodRequest{this=edbe39, name='null',
> ignoreBadInput=false, returnClass=interface
> org.apache.commons.httpclient.HttpMethod, sourceTypes=[interface
> org.mule.api.MuleMessage, class [B, class java.lang.String, class
> java.io.InputStream, interface org.mule.api.transport.OutputHandler,
> class org.mule.transport.NullPayload]}],
> name='endpoint.http.localhost.8080.service.soap', properties={},
> transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},
> filter=null, deleteUnacceptedMessages=false, securityFilter=null,
> synchronous=true, initialState=started, remoteSync=true,
> remoteSyncTimeout=3000, endpointEncoding=UTF-8}. Message payload is of
> type: PostMethod
> Type                  : org.mule.api.transport.DispatchException
> Code                  : MULE_ERROR-42999
> JavaDoc               :
> http://mule.mulesource.org/docs/apidocs/org/mule/api/transport/DispatchException.html
> Payload               : org.apache.commons.httpclient.methods.PostMethod@1dfd90f
> ********************************************************************************
> Exception stack is:
> 1. Content must be set before entity is written
> (java.lang.IllegalStateException)
>  org.apache.commons.httpclient.methods.InputStreamRequestEntity:177
> (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html)
> 2. Failed to route event via endpoint:
> DefaultOutboundEndpoint{endpointUri=http://localhost:8080/service/soap,
> connector=HttpConnector{this=26f9e5, started=true, initialised=true,
> name='connector.http.0', disposed=false,
> numberOfConcurrentTransactedReceivers=4,
> createMultipleTransactedReceivers=true, connected=true,
> supportedProtocols=[http], serviceOverrides=null},
> transformer=[ObjectToHttpClientMethodRequest{this=edbe39, name='null',
> ignoreBadInput=false, returnClass=interface
> org.apache.commons.httpclient.HttpMethod, sourceTypes=[interface
> org.mule.api.MuleMessage, class [B, class java.lang.String, class
> java.io.InputStream, interface org.mule.api.transport.OutputHandler,
> class org.mule.transport.NullPayload]}],
> name='endpoint.http.localhost.8080.service.soap', properties={},
> transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},
> filter=null, deleteUnacceptedMessages=false, securityFilter=null,
> synchronous=true, initialState=started, remoteSync=true,
> remoteSyncTimeout=3000, endpointEncoding=UTF-8}. Message payload is of
> type: PostMethod (org.mule.api.transport.DispatchException)
>  org.mule.transport.http.HttpClientMessageDispatcher:120
> (http://mule.mulesource.org/docs/apidocs/org/mule/api/transport/DispatchException.html)
> ********************************************************************************
>
> On Fri, Oct 3, 2008 at 12:25 PM, Todd Orr <torr0101@...> wrote:
>> I'm attempting to simply proxy an existing WS for version management,
>> etc. At this point all I'm trying to do is simply pass requests from
>> the new endpoint to the existing one. I've read this doc
>> (http://www.mulesource.org/display/MULE2USER/Proxying+Web+Services) on
>> how to do it, but it's not working out so well. My config is as
>> follows:
>>
>>
>>                <service name="service">
>>
>>                        <inbound>
>>
>>                                <cxf:inbound-endpoint
>>                                        address="http://localhost:63081/service"
>>                                        proxy="true" />
>>
>>                        </inbound>
>>
>>
>>                        <outbound>
>>
>>                                <outbound-pass-through-router>
>>
>>                                        <cxf:outbound-endpoint
>>                                                address="http://localhost:8080/service/soap"
>>                                                proxy="true" />
>>
>>                                </outbound-pass-through-router>
>>
>>                        </outbound>
>>
>>                </service>
>>
>>
>> This appears to be inline with the doc. The first thing I noted is
>> that it's not presenting the proxied WSDL. The original WSDL at
>> http://localhost:8080/service/soap?wsdl is correct, but the WSDL at
>> http://localhost:63081/service?wsdl refers to the ProxyService and is
>> completely different. However, the client can still connect, so I'm
>> willing to live with this oddity if I can get this functional even
>> though it'd be nice to not have to.
>>
>> The bigger issue is that when a client that was previously working
>> when configured to hit the original service address attempts to use
>> the new address it hangs, then times out. Looking at the stdout of
>> mule I see that it receives and passes on a request, but immediately
>> closing the HTTP connections. It hangs too until it times out. Upon
>> timing out, or maybe just before (it happens very quickly) something
>> is sent to the original address, but it appears as if no parameters
>> are sent. I get output on the stdout of the JBoss instance hosting the
>> original service that shows that the correct operation was called, but
>> with no arguments.
>>
>> I've fiddled with all combinations of synchronous and asyncRemote with
>> no change.
>>
>> This is day 2 of trying to solve this. I've already googled the crap
>> out of the issue and am officially tired. Any help is greatly
>> appreciated.
>>
>> Thanks,
>> T
>>
>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: CXF WS Proxy Hangs