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
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.
--
View this message in context:
http://www.nabble.com/Confused-about-the-EIPComponent-content-Enricher-tp19064169p19100290.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.