Hi,

Can you try

       StringSource enrichContent = new StringSource(body);
       message.setContent(enrichContent);
       System.out.println("Routed to Enricher!");
       System.out.println("received: " + body);
       exchange.setMessage(message, "out");
       channel.send(exchange);

Edell.


On Mon, Aug 25, 2008 at 10:29 AM, FreshAir <[EMAIL PROTECTED]> wrote:

>
>
>
> Edell Nolan wrote:
> >
> > Have you tried Gert's suggestion below ?
> >
> > On Fri, Aug 22, 2008 at 7:08 AM, Gert Vanthienen
> > <[EMAIL PROTECTED]>wrote:
> >
> >> L.S.,
> >>
> >> The most likely explanation is that you the incoming MessageExchange
> uses
> >> streaming for the message body (e.g. with a StreamSource, StaxSource or
> >> the
> >> like).  However, the stream is being read when you call the new
> >> SourceTransformer()).toString(content);  At that moment, the String
> >> variable
> >> contains the message body, but the original stream itself has been
> >> closed.
> >>
> >> Later on in your code, you copy the message content from 'in' to 'out',
> >> but
> >> the in (and out) message content is the closed stream now, causing
> >> problems
> >> when you try to read this thing again.  The best way to solve this is by
> >> calling setContent() on the out message and passing in a new Source
> >> object
> >> (e.g. a new StringSource(body)) to make sure you have a re-readable
> >> message.
> >> Could you give that a try?
> >>
> >> Regards,
> >>
> >> Gert
> >>
> >>
> >>
> >> FreshAir wrote:
> >>
> >>>
> >>> Edell Nolan wrote:
> >>>
> >>>
> >>>> Hi,
> >>>>
> >>>> I have tried this and for me to get it to go through and work I needed
> >>>> to
> >>>> define a target namespace.
> >>>>
> >>>> e.g
> >>>>
> >>>> <?xml version="1.0" encoding="UTF-8"?>
> >>>> <e:Envelope xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";
> >>>> xmlns="http://schemas.xmlsoap.org/soap/envelope/";>
> >>>>  <e:Body>
> >>>>   <test id="1">ok
> >>>>   </test>
> >>>>  </e:Body>
> >>>> </e:Envelope>
> >>>>
> >>>> Can you give this a try ?
> >>>>
> >>>> thanks, Edell.
> >>>>
> >>>> On Thu, Aug 21, 2008 at 2:35 AM, FreshAir <[EMAIL PROTECTED]>
> >>>> wrote:
> >>>>
> >>>>
> >>>>
> >>>>>
> >>>>> Edell Nolan wrote:
> >>>>>
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I have tested this out and it works for me.
> >>>>>>
> >>>>>> I am just wondering how you send the actual message.
> >>>>>>
> >>>>>> I sent the request as follows from an onMessageExchange of a Service
> >>>>>>
> >>>>>>        QName cbrServiceName = new QName(SERVICE_NAMESPACE,
> >>>>>> "contentEnricher");
> >>>>>>        ServiceEndpoint se = getContext().getEndpoint(cbrServiceName,
> >>>>>> "enricherEndpoint");
> >>>>>>
> >>>>>>        InOnly eipInOnly =
> >>>>>> channel.createExchangeFactory().createInOnlyExchange();
> >>>>>>
> >>>>>>        eipInOnly.setEndpoint(se);
> >>>>>>        NormalizedMessage msg = eipInOnly.createMessage();
> >>>>>>        msg.setContent(setMessageContent());
> >>>>>>
> >>>>>>        eipInOnly.setMessage(msg, "in");
> >>>>>>        eipInOnly.setService(cbrServiceName);
> >>>>>>        channel.sendSync(eipInOnly);
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> then setMessageContent is
> >>>>>>
> >>>>>>  private StringSource setupMsg() {
> >>>>>>      StringBuffer buf = new StringBuffer();
> >>>>>>      buf.append("<test id=\"1\">ok</test>");
> >>>>>>      return new StringSource(buf.toString());
> >>>>>>    }
> >>>>>>
> >>>>>> and it then goes through the additionalInformationExtracter and
> >>>>>> another
> >>>>>> service that I setup as the target and I do get the message content
> >>>>>>
> >>>>>>
> >>>>> from
> >>>>>
> >>>>>
> >>>>>> it.
> >>>>>>
> >>>>>> Edell.
> >>>>>>
> >>>>>>
> >>>>>> On Wed, Aug 20, 2008 at 8:27 AM, FreshAir <[EMAIL PROTECTED]>
> >>>>>>
> >>>>>>
> >>>>> wrote:
> >>>>>
> >>>>>
> >>>>>> 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.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>> Hi,
> >>>>> My http request part was like this,the xbean.xml which defines a http
> >>>>> bc:
> >>>>>  <http:endpoint service="test:http8"
> >>>>>                endpoint="endpoint"
> >>>>>                targetService="test:contentEnricher"
> >>>>>                role="consumer"
> >>>>>                locationURI="http://0.0.0.0:8192/eip-enricher/";
> >>>>>                defaultMep="http://www.w3.org/2004/08/wsdl/in-only";
> >>>>>                                soap="true"/>
> >>>>>
> >>>>> and I modified an example in servicemix3.2.1 distribution that is a
> >>>>> client.html to post request(as I attached).would you please tell me
> if
> >>>>> I
> >>>>> missed something?
> >>>>> Thanks! http://www.nabble.com/file/p19081101/client-enricher.html
> >>>>> client-enricher.html
> >>>>> --
> >>>>> View this message in context:
> >>>>>
> >>>>>
> http://www.nabble.com/Confused-about-the-EIPComponent-content-Enricher-tp19064169p19081101.html
> >>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>> Sir,
> >>> I don't know how you got it through, for me it is still giving errors
> >>> like
> >>> there were no actual payload in the sent message by that http bc to the
> >>> contentEnricher as follows(note the "in" part):
> >>> Routed to Enricher!
> >>> received: <?xml version="1.0" encoding="UTF-8"?><test
> >>> xmlns="http://schemas.xmls
> >>> oap.org/soap/envelope/" xmlns:e="
> >>> http://schemas.xmlsoap.org/soap/envelope/";
> >>> id="
> >>> 1">ok
> >>>   </test>
> >>> ERROR - EIPComponent                   - Error processing exchange
> >>> InOnly[
> >>>  id: ID:172.16.253.122-11be8193dc7-9:6
> >>>  status: Active
> >>>  role: provider
> >>>  service: {http://test}contentEnricher
> >>>  endpoint: endpoint
> >>>  operation:
> >>> {http://schemas.xmlsoap.org/soap/envelope/}test<http://schemas.xmlsoap.org/soap/envelope/%7Dtest>
> <http://schemas.xmlsoap.org/soap/envelope/%7Dtest>
> >>>  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)
> >>> ...
> >>>
> >>> Is there any difference between defining a namespace and without one in
> >>> the
> >>> request xml?
> >>> Anyway, I think it is http bc that causes problem, since when I produce
> >>> a
> >>> Inonly message in a servicemix-bean's onMessageExchangeListener and
> send
> >>> it
> >>> to that contentEnricher(defining QName), it works like:
> >>> Routed to Enricher!
> >>> received: <test id="1">ok</test>
> >>> Received exchange: InOnly[
> >>>  id: ID:172.16.253.122-11be8207141-13:2
> >>>  status: Active
> >>>  role: provider
> >>>  service: {http://test}trace3
> >>>  endpoint: endpoint
> >>>  in: <?xml version="1.0" encoding="UTF-8"?><enricher><request><test
> >>> id="1">ok</
> >>> test></request><result><test id="1">ok</test></result></enricher>
> >>> ]
> >>> here I dont enrich any content so it remains the same.
> >>> It is noticeable, however, that in the former the enricher bean
> recieved
> >>> something like: <?xml version="1.0" encoding="UTF-8"?><test xmlns="
> >>> http://schemas.xmls
> >>> oap.org/soap/envelope/" xmlns:e="
> >>> http://schemas.xmlsoap.org/soap/envelope/";
> >>> id="
> >>> 1">ok
> >>>   </test>
> >>> and for the latter:
> >>> <test id="1">ok</test>
> >>>
> >>> The non-http request is written as you told me in the last reply.
> >>> So I was indeed wondering what's wrong with my http-bc.
> >>> Thanks.
> >>>
> >>>
> >>
> >>
> >
> >
> Sir,
> Sorry for the delay.
> I have tried Gert's suggesion and it still gives the error of that
> NullPointerException.
> I modified the code like this:
>  NormalizedMessage message = exchange.getMessage("in");
>                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);
> content = new StringSource(body);
>                     message.setContent(content);
>                        System.out.println("Routed to Enricher!");
>                        System.out.println("received: " + body);
>
>                        exchange.setMessage(message, "out");
>                        channel.send(exchange);
>
> Do I correctly understand what's Gert's mean?
> Thanks for your concern!
> --
> View this message in context:
> http://www.nabble.com/Confused-about-the-EIPComponent-content-Enricher-tp19064169p19140553.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Reply via email to