Hi,
I tested the servicemix-eip, and its content-enricher part appears rather
confusing.
The following is my xbean.xml using content-enricher:
<eip:content-enricher service="test:contentEnricher" endpoint="endpoint">
  <eip:enricherTarget>
    <eip:exchange-target service="test:additionalInformationExtracter"/>
  </eip:enricherTarget>
  <eip:target>
    <eip:exchange-target service="test:trace3" />
  </eip:target>
</eip:content-enricher>

the exchange-target of enricherTarget is simply a servicemix-bea, the
onMessageExchange method of which is as follows:

 public void onMessageExchange(MessageExchange exchange) throws
MessagingException {
        if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
                
                NormalizedMessage message = exchange.getMessage("in");
                        Source content = message.getContent();
                        //process content according to your logic
                        //e.g. to access the message body as a String use
                        try{
                        String body = (new 
SourceTransformer()).toString(content);
                                            message.setContent(content);
                        System.out.println("Routed to Enricher!");
                        System.out.println("received: " + body);
                        
                        exchange.setMessage(message, "out");
                        channel.send(exchange);
                        }catch(Exception e) {
                                e.printStackTrace();
                        }
        }
    }
As you see, it can not be simpler which just echo the message.
The target part is similar and equally simple. I used a http bc to post a
soap message to the content-enricher like this:

<?xml version="1.0" encoding="UTF-8"?>
<e:Envelope xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
  <e:Body>
   <test id="1">ok
   </test>
  </e:Body>
</e:Envelope>

But it gave me the following error:

Routed to Enricher!
received: <?xml version="1.0" encoding="UTF-8"?><test
xmlns:e="http://schemas.xm
lsoap.org/soap/envelope/" id="1">ok
   </test>
ERROR - EIPComponent                   - Error processing exchange InOnly[
  id: ID:172.16.253.122-11bdeb9b38c-12:8
  status: Active
  role: provider
  service: {http://test}contentEnricher
  endpoint: endpoint
  operation: test
  in: <?xml version="1.0" encoding="UTF-8"?>
]
java.lang.NullPointerException
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.combineToDOMDoc
ument(ContentEnricher.java:208)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.process(Content
Enricher.java:156)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.doProcess(AsyncBas
eLifeCycle.java:526)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.processExchange(As
yncBaseLifeCycle.java:478)
        at
com.intervision.interesb.common.BaseLifeCycle.onMessageExchange(BaseL
ifeCycle.java:34)
        at
com.intervision.interesb.jbi.messaging.DeliveryChannelImpl.processInB
ound(DeliveryChannelImpl.java:598)
        at
com.intervision.interesb.jbi.nmr.flow.AbstractFlow.doRouting(Abstract
Flow.java:158)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlo
w.java:155)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.
java:122)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)
WARN  - jetty                          - Nested in
javax.servlet.ServletExceptio
n: Failed to process request: java.lang.Exception:
java.lang.NullPointerExceptio
n:
java.lang.Exception: java.lang.NullPointerException
        at
com.intervision.interesb.http.processors.ConsumerProcessor.process(Co
nsumerProcessor.java:182)
        at
com.intervision.interesb.http.HttpBridgeServlet.doPost(HttpBridgeServ
let.java:59)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487
)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
62)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
12)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHand
lerCollection.java:211)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.
java:114)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1
39)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:50
6)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja
va:396)
        at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(Se
lectChannelConnector.java:511)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool
.java:442)
Caused by: java.lang.NullPointerException
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.combineToDOMDoc
ument(ContentEnricher.java:208)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.process(Content
Enricher.java:156)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.doProcess(AsyncBas
eLifeCycle.java:526)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.processExchange(As
yncBaseLifeCycle.java:478)
        at
com.intervision.interesb.common.BaseLifeCycle.onMessageExchange(BaseL
ifeCycle.java:34)
        at
com.intervision.interesb.jbi.messaging.DeliveryChannelImpl.processInB
ound(DeliveryChannelImpl.java:598)
        at
com.intervision.interesb.jbi.nmr.flow.AbstractFlow.doRouting(Abstract
Flow.java:158)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlo
w.java:155)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.
java:122)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)
WARN  - jetty                          - /eip-enricher/
java.lang.Exception: java.lang.NullPointerException
        at
com.intervision.interesb.http.processors.ConsumerProcessor.process(Co
nsumerProcessor.java:182)
        at
com.intervision.interesb.http.HttpBridgeServlet.doPost(HttpBridgeServ
let.java:59)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487
)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
62)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
12)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHand
lerCollection.java:211)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.
java:114)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1
39)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:50
6)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja
va:396)
        at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(Se
lectChannelConnector.java:511)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool
.java:442)
Caused by: java.lang.NullPointerException
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.combineToDOMDoc
ument(ContentEnricher.java:208)
        at
com.intervision.interesb.eip.patterns.ContentEnricher.process(Content
Enricher.java:156)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.doProcess(AsyncBas
eLifeCycle.java:526)
        at
com.intervision.interesb.common.AsyncBaseLifeCycle.processExchange(As
yncBaseLifeCycle.java:478)
        at
com.intervision.interesb.common.BaseLifeCycle.onMessageExchange(BaseL
ifeCycle.java:34)
        at
com.intervision.interesb.jbi.messaging.DeliveryChannelImpl.processInB
ound(DeliveryChannelImpl.java:598)
        at
com.intervision.interesb.jbi.nmr.flow.AbstractFlow.doRouting(Abstract
Flow.java:158)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlo
w.java:155)
        at
com.intervision.interesb.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.
java:122)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)

Obviously the enricher-target had recieved the message but when routed to
the target, the "in" part of the message had mysteriously gone(that's why a
NullpointerException was invited). 
Any suggestion would be greatly appreciated.
Thanks in advance!
-- 
View this message in context: 
http://www.nabble.com/Confused-about-the-EIPComponent-content-Enricher-tp19064169p19064169.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to