This is the MySender.java
import java.io.BufferedReader;
import java.io.FileReader;
import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.MessagingException;
import javax.jbi.messaging.NormalizedMessage;
import javax.jbi.messaging.ExchangeStatus;
import org.servicemix.MessageExchangeListener;
import org.servicemix.components.util.PojoSupport;
import org.servicemix.jbi.jaxp.StringSource;
public class MySender extends PojoSupport implements MessageExchangeListener {
public void onMessageExchange(MessageExchange exchange)
throws MessagingException {
System.out.println("IN onMessageExchange");
if ( exchange.getStatus() != ExchangeStatus.DONE ) { System.out.println("IN onMessageExchange and Status == " + exchange.getStatus() ); NormalizedMessage message = exchange.createMessage(); exchange.setMessage(message, "out");
message.setContent(new StringSource(getQuote("quote.txt", "3.0
"))); done(exchange);
//answer(exchange, message);
} else {
System.out.println("IN onMessageExchange and Status == DONE");
}
}
private String getQuote(String fileName, String def) { BufferedReader br = null;
String retval = "";
try {
br =new BufferedReader (new FileReader(fileName));
String line = "";
while((line = br.readLine())!=null)
retval += line; }
catch (Exception ex) {
// ignore, use default
} finally {
if (br != null)
try {
br.close();
} catch (Exception ex) {}
}
if (retval.length() == 0)
return def;
else
return retval;
}}
Poco:~/servicemix-2.0.2/examples/vsjmix jrizzo$ sh ../../bin/servicemix servicemix.xml
ServiceMix ESB: 2.0.2
Loading ServiceMix from file: servicemix.xml
09:49:19.087 EVENT Starting Jetty/4.2.20RC0
09:49:19.106 EVENT Started ServletHttpContext[/]
09:49:19.109 EVENT Started SocketListener on 127.0.0.1:8080
09:49:19.109 EVENT Started org.mortbay.jetty.Server@d1702e
IN onMessageExchange
IN onMessageExchange and Status == Active
09:49:19.417 WARN!! Exception for /
javax.jbi.messaging.MessagingException: illegal exchange status: done
at org.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:535)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:346)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:387)
at org.servicemix.components.util.PojoSupport.done(PojoSupport.java:209)
at MySender.onMessageExchange(Unknown Source)
at org.servicemix.components.util.ComponentAdaptorMEListener.onMessageExchange(ComponentAdaptorMEListener.java:48)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:588)
at org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:171)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:119)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:567)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:347)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:422)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:398)
at org.servicemix.components.http.HttpInOutBinding.processInOut(HttpInOutBinding.java:61)
at org.servicemix.components.http.HttpInOutBinding.process(HttpInOutBinding.java:46)
at org.servicemix.components.http.BindingServlet.doPost(BindingServlet.java:77)
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:354)
at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:657)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:961)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:276)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
09:49:19,441 ERROR [PojoSupport] Error processing exchange
javax.jbi.messaging.MessagingException: Error executing http request
at org.servicemix.components.http.HttpInvoker.transform(HttpInvoker.java:70)
at org.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:50)
at org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:588)
at org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:171)
at org.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:225)
at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:613)
Caused by: org.servicemix.components.http.InvalidStatusResponseException: Invalid status response code: 500
at org.servicemix.components.http.HttpInvoker.transform(HttpInvoker.java:62)
... 7 more