Hi,

My comment inline
On 2010-3-1, at 下午9:58, Titas Lapinskas wrote:

Hey to all,

I am proceeding with exploring of SMX 4.1.0 and now bumped into the following issue: compiled and installed bridge-camel example, tried accessing through the client. Got Error:

<p>Problem accessing /bridge/. Reason:
<pre> Fault occured for InOnly exchange</pre></p><h3>Caused by:</ h3><pre>org.apache.servicemix.jbi.exception.FaultException: Fault occured for InOnly exchange
        at  <skiped the rest>

This example takes HTTP request, transforms, logs, and puts into queue.
Here is full copy/paste from log:

15:42:36,305 | INFO | x-camel-thread-2 | example | rg.apache.camel.processor.Logger 88 | Exchange[BodyType:String, Body:<?xml version="1.0" encoding="UTF-8"?>
<e:Envelope xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
 <e:Body>
   <ping>
     <pingRequest>
       <message xmlns="http://soap";>help</message>
     </pingRequest>
   </ping>
 </e:Body>
</e:Envelope>
]
15:42:36,316 | INFO | x-camel-thread-2 | ManagementEndpointRegistry | ement.ManagementEndpointRegistry 56 | Registering endpoint: org.apache.servicemix.nmr.core.internalendpointwrap...@7eb5053e with properties {javax .jbi .servicedesc .ServiceEndpoint =org.apache.servicemix.common.externalendpo...@1c436b, NAME={http://camel.apache.org/schema/jbi }provider:ID:10.40.136.67-12719f58774-2:0, service.id=259, UNTARGETABLE=true, objectClass=[Ljava.lang.String;@18e45a8, ENDPOINT_NAME=ID:10.40.136.67-12719f58774-2:0, SERVICE_NAME={http://camel.apache.org/schema/jbi }provider, jbi.external=true} 15:42:36,323 | WARN | x-camel-thread-2 | JbiBinding | ache.servicemix.camel.JbiBinding 232 | Unable to convert message body of type class java.lang.String into an XML Source 15:42:36,358 | ERROR | mix-jms-thread-2 | JmsComponent | icemix.common.AsyncBaseLifeCycle 480 | Error processing exchange org.apache.servicemix.jbi.runtime.impl.inonlyi...@13641d6 javax.xml.stream.XMLStreamException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document). at com .ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java: 1547) at com .ctc .wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java: 1576) at com .ctc.wstx.sw.BaseStreamWriter._finishDocument(BaseStreamWriter.java: 1402) at com .ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java: 553) at org .apache .servicemix .soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:130) at org .apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java: 92) at org .apache .servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:89) at org .apache .servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java: 116) at org .apache .servicemix .jms.AbstractJmsProcessor.fromNMS(AbstractJmsProcessor.java:216) at org .apache .servicemix .jms .AbstractJmsProcessor .createMessageFromExchange(AbstractJmsProcessor.java:263) at org .apache .servicemix .jms .multiplexing .MultiplexingProviderProcessor .process(MultiplexingProviderProcessor.java:129) at org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:400) at org .apache .servicemix .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org .apache .servicemix .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 581) at org .apache .servicemix .common .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle $2.run(AsyncBaseLifeCycle.java:347) 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)

This error is caused by CAMEL-2450[1], which fixed by camel 2.2. As the latest SMX4 snapshot kit already use camel 2.2, so you shouldn't have encountered this problem at all. So my question is how you get the kit? Is it the latest one? You can get the latest kit from [2],you need download the kit with latest timestamp.
[1]https://issues.apache.org/activemq/browse/CAMEL-2450
[2]https://repository.apache.org/content/groups/snapshots-group/org/apache/servicemix/apache-servicemix/4.1.0-SNAPSHOT/
15:42:36,360 | ERROR | x-camel-thread-2 | DefaultErrorHandler | rg.apache.camel.processor.Logger 248 | Failed delivery for exchangeId: 66d33fea-3a3f-440d-9936-85dbe6194ba4. Exhausted after delivery attempt: 1 caught: javax.xml.stream.XMLStreamException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document). javax.xml.stream.XMLStreamException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document). at com .ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java: 1547) at com .ctc .wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java: 1576) at com .ctc.wstx.sw.BaseStreamWriter._finishDocument(BaseStreamWriter.java: 1402) at com .ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java: 553) at org .apache .servicemix .soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:130) at org .apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java: 92) at org .apache .servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:89) at org .apache .servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java: 116) at org .apache .servicemix .jms.AbstractJmsProcessor.fromNMS(AbstractJmsProcessor.java:216) at org .apache .servicemix .jms .AbstractJmsProcessor .createMessageFromExchange(AbstractJmsProcessor.java:263) at org .apache .servicemix .jms .multiplexing .MultiplexingProviderProcessor .process(MultiplexingProviderProcessor.java:129) at org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:400) at org .apache .servicemix .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org .apache .servicemix .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 581) at org .apache .servicemix .common .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle $2.run(AsyncBaseLifeCycle.java:347) 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)
15:42:36,362 | WARN | x-camel-thread-2 | SimpleEndpoint | .common.endpoints.SimpleEndpoint 90 | SimpleEndpoint.fail called: 15:42:36,363 | WARN | 3...@qtp-1838702-0 | jetty | service.jetty.internal.JCLLogger 115 | /bridge/ org.apache.servicemix.jbi.exception.FaultException: Fault occured for InOnly exchange at org .apache .servicemix .camel.CamelProviderEndpoint.onFailure(CamelProviderEndpoint.java:154) at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java: 143) at org .apache .camel.processor.UnitOfWorkProcessor.done(UnitOfWorkProcessor.java:82) at org .apache .camel .processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java: 71) at org .apache .camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org .apache .camel .management .InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.servicemix.camel.CamelProviderEndpoint $1.call(CamelProviderEndpoint.java:100) at org .apache .servicemix .camel.JbiBinding.runWithCamelContextClassLoader(JbiBinding.java:107) at org .apache .servicemix .camel .CamelProviderEndpoint .handleActiveProviderExchange(CamelProviderEndpoint.java:98) at org .apache .servicemix .camel.CamelProviderEndpoint.process(CamelProviderEndpoint.java:77) at org .apache .servicemix .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org .apache .servicemix .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 581) at org .apache .servicemix .common .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle $2.run(AsyncBaseLifeCycle.java:347) 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)


Seems to me like it is an JMS error. I have default instalation on Microsoft Vista with 4.1.0 SNAPSHOT downloaded on 2010-02-24 06:57 (Greenvich time +0) I checked the configs and according activemq-broker.xml there should be <install>/data/activemq directory on which activemq should be storing the files, but such doesn't exists.
I did the following steps:

ka...@root> osgi:list | grep activemq
[ 126] [Active ] [ ] [ ] [ 60] activemq-core (5.3.0) [ 127] [Active ] [ ] [ ] [ 60] activemq-ra (5.3.0) [ 128] [Active ] [ ] [ ] [ 60] activemq- console (5.3.0) [ 129] [Installed ] [ ] [ ] [ 60] activemq-pool (5.3.0) [ 170] [Installed ] [ ] [ ] [ 60] activemq- broker.xml (0.0.0
)
ka...@root> start 129
Error executing command: Unresolved constraint in bundle org.apache.activemq.act ivemq-pool [129]: package; (&(package=org.apache.commons.pool.impl) (version>=1.4
.0)(!(version>=1.5.0)))
ka...@root> osgi:install file:D:/work_soft/apache-servicemix-4.1.0- SNAPSHOT/syst
em/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar
org.osgi.framework.BundleException: Bundle symbolic name and version are not uni
que: org.apache.commons.pool:1.5.4

This is a known issue and get fixed by [3]SMX4-491 very recently, I believe the latest kit already picked up this fix.
[3]https://issues.apache.org/activemq/browse/SMX4-491

Freeman

I tried various commands with | grep list but saw only activemq-pool shown, so no ideas how to enable that commons-pool as it seems this is bottleneck for MQ not starting.

Any advices would be welcome.

On the same matter - later I'll have to enable Oracle AQ access from ServiceMix 4 however haven't found any useful docs about it. Saw about bridging, but I'd prefer to access it directly. Could anyone give me some directions and advices how to do that? On ServiceMix 3.3.1 it was easily done by putting Oracle libs to lib/ optional directory and then configuring jndi.xml to perform global jndi-search to get factory. However I don't see any jndi.xml in SMX4 package (how global JNDI lookup is being done there?) and lib contains very few files. Furthermore, I haven't saw that any config file pointing to lib directory.


Thank you in advance,
Titas


--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com

Reply via email to