Hello,
I am having problems with a simple message routing scenario using Camel SE in OpenESB. Basically I want to process a message from JBI endpoint and send it to file location. The concrete definitinion of the JBI endpoint is defined in a custom wsdl file. So here are my steps:
1) Create CamelJBI Module
2) in the Configure method of the RouteBuilder class I specify the following route:
String jbiURI = "jbi:
http://openesb.org/jbi2camel/TESTCamelJBIModule/TESTCamelJBIModule_service/jbi2camel_endpoint";
from(jbiURI).to("file://c:/temp/messages/out");
3) Create composite application.
4) Under "Process files" in the Composite application, create new wsdl file with concrete binding information - Binding "FILE", type "Poll"
5) Add the CamelJBI Module as JBI module to the composite application.
6) In WSDL Ports of "Assembly Service" area in the Composite application try to load WSDL Port and select the port defined by the wsdl file. The port is recongnised as FILE binding component. Build and deploy.
7) Copy the test file at the receive location specified by the wsdl file. The file is read, but not delivered to the destination location. In the server log the following exception is thrown:
java.lang.NullPointerException
at org.openesb.components.camelse.JBIWrapperUtil.removeJBIWrapperFromInMessage(JBIWrapperUtil.java:161)
at org.openesb.components.camelse.CamelSEProviderMessageExchangeHandler.processMessageOnProvider(CamelSEProviderMessageExchangeHandler.java:138)
at org.openesb.components.camelse.CamelSEProviderMessageExchangeHandler.processMessage(CamelSEProviderMessageExchangeHandler.java:111)
at org.openesb.components.camelse.common.AbstractMessageExchangeHandler.processActive(AbstractMessageExchangeHandler.java:100)
at org.openesb.components.camelse.common.AbstractMessageExchangeHandler.processMessageExchange(AbstractMessageExchangeHandler.java:130)
at org.openesb.components.camelse.common.deployment.Endpoint.processMessageExchangeWithHandler(Endpoint.java:271)
at org.openesb.components.camelse.CamelSEProviderEndpoint.messageExchangeReceived(CamelSEProviderEndpoint.java:99)
at org.openesb.components.camelse.common.MessageExchangeSupport.fireMessageExchangeReceived(MessageExchangeSupport.java:130)
at org.openesb.components.camelse.common.DefaultMessageExchangeReceiver$2.run(DefaultMessageExchangeReceiver.java:168)
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:619)
I am running on glassfishesb-v2.1, apache-camel-1.6.1 and the latest version of Camel SE.
Just to mention that the example works, if insted of JBI I use explicit file receive location in the routing configuration.
Any help is appreciated. Thank you.