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.

Reply via email to