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)
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
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