Hello everyone,
I am having a problem with the JMS-bridges of ServiceMix. For testing
purposes, I made the following setup: The first PC (called Vectra) has a
ServiceMix 3.0-M1 with a http binding component that sends its incoming
soap messages to a certain service. That service is located on the
second PC (called Polo) which has another http binding component that
binds the external web service provider to that ServiceMix part. Now the
JMS bridge is in fact created, but every second message that is supposed
to pass through the bridge yields an error. In order to test, I used an
external program that sends a SOAP to a specified location (the sendsoap
that is included in the standalone distribution of PXE) to send a SOAP
request to the binding component. The first message that is send,
results in a correct answer from the service provider. the second
message results in the following message :
sendsoap: Unable to send message due to I/O-related error:
org.apache.commons.httpclient.HttpRecoverableException:
Error in parsing the status line from the response: unable to find
line starting with "HTTP"
The ServiceMix console on the clientside PC (Vectra) shows:
WARN - JCLLoggerAdapter.warn(346) | /InOut
java.lang.IllegalStateException: Exchange not found
at
org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:162)
at
org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:350)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:536)
at org.mortbay.jetty.Server.handle(Server.java:309)
at org.mortbay.jetty.Server.handle(Server.java:285)
at
org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:364)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:292)
at
org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:710)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
and the ServiceMix console on the serverside PC (Polo) shows:
ERROR - BaseLifeCycle$2.run(242) | Error processing exchange
[EMAIL PROTECTED]
java.lang.IllegalStateException: No processor found for:
ID:Vectra-1185-1152004779093-11:3
at
org.apache.servicemix.common.BaseLifeCycle.processExchange(BaseLifeCycle.java:378)
at
org.apache.servicemix.common.BaseLifeCycle$2.run(BaseLifeCycle.java:240)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Further, the third message will yield a correct response and the fourhth
gives the same error again (and so on).
Next, I re-experimented with the "cluster" example. The distributed
setup resulted in similar behaviour. When pasting 5 messages into the
inbox of the Vectra-PC, only messages 1, 3 and 5 were transported to the
outbox of the Polo-PC (messages 2 and 4 were seemingly ignored and
remained unchanged in the inbox of the Vectra-PC), although no error was
visible at any console.
Has anybody experienced the same issues? And does anyone know a solution
for this behaviour?
Thanx in advance,
Tom