When I try to deploy a KAR file in Karaf 4.0.3 (OSX, Java 8) it mostly fails
for one or several of the features in the KAR file. The errors differ and
which features fail to deploy appears to be non-deterministic. The features
in the KAR depend on Camel 2.16.0. I have changed the order of features in
the feature repository around, I have tried combinations of
prerequisite="true|false" dependency="true|false", I have streamlined the
feature dependencies, built only the smallest meaningful KAR (1 web-service
feature + data backend feature), all without real success. As deploying the
same KAR artifact multiple times yields different results on every deploy it
is hard to tell which change has had any impact at all. But I have the
feeling that setting prerequisite="true" somewhat increases the success rate
(1 success in 10 deployment attempts?).
Deployment on the console via feature:repo-add <mvn:my feature repo>,
feature:install almost always works (19 success in 20 feature:install?).
Most issues are with my web-service features. A deployment without errors
does not mean the deployed web-services work though. The feature descriptors
of my WS features all look the same:
<feature name="pas-webservice-hp" description="PAS Webservice for HPs"
version="4.0.0.SNAPSHOT">
<details>health professional related use cases</details>
<feature prerequisite="true" dependency="false">http</feature>
<feature prerequisite="true"
dependency="false">http-whiteboard</feature>
<feature version="2.16.0" prerequisite="true"
dependency="false">camel-jaxb</feature>
<feature version="2.16.0" prerequisite="true"
dependency="false">camel-blueprint</feature>
<feature version="2.16.0" prerequisite="true"
dependency="false">camel-spring-ws</feature>
<feature prerequisite="true" dependency="false">wrap</feature>
<bundle
dependency="true">mvn:ch.vivates.ams/base/4.0.0-SNAPSHOT</bundle>
<bundle>mvn:ch.vivates.ams/pas-webservice-hp/4.0.0-SNAPSHOT</bundle>
<bundle>mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1</bundle>
</feature>
The error I get the most is
2015-11-21 17:44:38,628 | ERROR | pool-36-thread-1 | BlueprintCamelContext
| 55 - org.apache.camel.camel-blueprint - 2.16.0 | | Error occurred during
starting Camel: CamelContext(pas-patient-ws) due Failed to create route
addTrustRole at: >>> Unmarshal[ref:jaxb] <<< in route:
Route(addTrustRole)[[From[spring-ws:soapaction:http://www.po... because of
Data format 'jaxb' could not be created. Ensure that the data format is
valid and the associated Camel component is present on the classpath
org.apache.camel.FailedToCreateRouteException: Failed to create route
addTrustRole at: >>> Unmarshal[ref:jaxb] <<< in route:
Route(addTrustRole)[[From[spring-ws:soapaction:http://www.po... because of
Data format 'jaxb' could not be created. Ensure that the data format is
valid and the associated Camel component is present on the classpath
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1072)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:944)[58:org.apache.camel.camel-core:2.16.0]
...
Caused by: java.lang.IllegalArgumentException: Data format 'jaxb' could not
be created. Ensure that the data format is valid and the associated Camel
component is present on the classpath
at
org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:107)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:78)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.UnmarshalDefinition.createProcessor(UnmarshalDefinition.java:179)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:534)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:495)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:219)[58:org.apache.camel.camel-core:2.16.0]
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)[58:org.apache.camel.camel-core:2.16.0]
... 46 more
Less often I receive this error during an initial deployment:
Caused by: java.lang.ClassNotFoundException: Unable to load class
'com.sun.xml.messaging.saaj.soap.SOAPVersionMismatchException' because the
bundle wiring for org.apache.servicemix.bundles.saaj-impl is no longer
valid.
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1539)[org.apache.felix.framework-5.4.0.jar:]
at
org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)[org.apache.felix.framework-5.4.0.jar:]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_40]
... 33 more
This is often reproducible by doing a feature:uninstall followed by a
feature:install as well.
Even if there are no errors logged during deployment some of the web-service
methods (but not all of them!) might respond with a SOAP fault: "Can't
transform a Source of type javax.xml.transform.stax.StAXSource".
Another error I got was "Server does not support POST requests" in a Jetty
error HTML page. I missed to copy the exact error message.
Very rarely the deployment of the backend feature fails as well:
2015-11-21 19:50:31,461 | ERROR | rint Extender: 3 | BlueprintContainerImpl
| 13 - org.apache.aries.blueprint.core - 1.4.5 | | Unable to start
blueprint container for bundle ch.vivates.ams.graph-manager/4.0.0.SNAPSHOT
java.lang.NullPointerException
at
org.apache.felix.framework.BundleRevisionImpl.getResourceLocal(BundleRevisionImpl.java:503)
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1546)
at
org.apache.felix.framework.BundleWiringImpl.getResourceByDelegation(BundleWiringImpl.java:1458)
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.getResource(BundleWiringImpl.java:2546)
at
java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1304)[:1.8.0_40]
at
com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.tailor(AccessorInjector.java:120)
at
com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:85)
at
com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:176)
at
com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:291)
at
com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.<init>(TransducedAccessor.java:237)
at
com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor.get(TransducedAccessor.java:177)
at
com.sun.xml.bind.v2.runtime.property.AttributeProperty.<init>(AttributeProperty.java:91)
at
com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:108)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:182)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:169)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:533)
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.<init>(SingleElementNodeProperty.java:105)
at sun.reflect.GeneratedConstructorAccessor42.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_40]
at
java.lang.reflect.Constructor.newInstance(Constructor.java:422)[:1.8.0_40]
at
com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:128)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:182)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:331)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:142)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1174)
at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:162)
at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:286)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.8.0_40]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_40]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_40]
at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_40]
at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:143)[:2.5.0]
at javax.xml.bind.ContextFinder.find(ContextFinder.java:310)[:2.5.0]
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)[:2.5.0]
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:409)[:2.5.0]
at
org.apache.camel.blueprint.BlueprintModelJAXBContextFactory.newJAXBContext(BlueprintModelJAXBContextFactory.java:63)[64:org.apache.camel.camel-blueprint:2.16.0]
at
org.apache.camel.blueprint.handler.CamelNamespaceHandler.getJaxbContext(CamelNamespaceHandler.java:640)[64:org.apache.camel.camel-blueprint:2.16.0]
at
org.apache.camel.blueprint.handler.CamelNamespaceHandler.parseCamelContextNode(CamelNamespaceHandler.java:233)[64:org.apache.camel.camel-blueprint:2.16.0]
at
org.apache.camel.blueprint.handler.CamelNamespaceHandler.parse(CamelNamespaceHandler.java:187)[64:org.apache.camel.camel-blueprint:2.16.0]
at
org.apache.aries.blueprint.parser.Parser.parseCustomElement(Parser.java:1316)[13:org.apache.aries.blueprint.core:1.4.5]
at
org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:374)[13:org.apache.aries.blueprint.core:1.4.5]
at
org.apache.aries.blueprint.parser.Parser.populate(Parser.java:307)[13:org.apache.aries.blueprint.core:1.4.5]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:326)[13:org.apache.aries.blueprint.core:1.4.5]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)[13:org.apache.aries.blueprint.core:1.4.5]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_40]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40]
at
org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[13:org.apache.aries.blueprint.core:1.4.5]
at
org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[13:org.apache.aries.blueprint.core:1.4.5]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_40]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_40]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_40]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_40]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_40]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
When setting the feature attribute dependency="true" deployment of any
feature fails immediately with a stack overflow.
2015-11-21 20:32:19,525 | ERROR | af-4.0.3//deploy | fileinstall
| 8 - org.apache.felix.fileinstall - 3.5.0 | | In main loop, we have
serious trouble
java.lang.StackOverflowError
at
java.util.regex.Pattern$CharProperty.match(Pattern.java:3776)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match0(Pattern.java:4250)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)[:1.8.0_40]
at
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)[:1.8.0_40]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)[:1.8.0_40]
at
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)[:1.8.0_40]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)[:1.8.0_40]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match0(Pattern.java:4279)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)[:1.8.0_40]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match0(Pattern.java:4279)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)[:1.8.0_40]
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match0(Pattern.java:4279)[:1.8.0_40]
at java.util.regex.Pattern$Curly.match(Pattern.java:4234)[:1.8.0_40]
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)[:1.8.0_40]
at java.util.regex.Matcher.match(Matcher.java:1270)[:1.8.0_40]
at java.util.regex.Matcher.matches(Matcher.java:604)[:1.8.0_40]
at
org.apache.felix.utils.version.VersionCleaner.clean(VersionCleaner.java:52)
at
org.apache.felix.utils.version.VersionTable.getVersion(VersionTable.java:48)
at
org.apache.felix.utils.version.VersionRange.<init>(VersionRange.java:117)
at
org.apache.felix.utils.version.VersionRange.<init>(VersionRange.java:99)
at
org.apache.felix.utils.version.VersionRange.<init>(VersionRange.java:94)
at
org.apache.karaf.features.internal.resolver.ResourceUtils.addIdentityRequirement(ResourceUtils.java:88)
at
org.apache.karaf.features.internal.region.Subsystem.requireFeature(Subsystem.java:221)
at
org.apache.karaf.features.internal.region.Subsystem.doBuild(Subsystem.java:282)
at
org.apache.karaf.features.internal.region.Subsystem.build(Subsystem.java:269)
at
org.apache.karaf.features.internal.region.Subsystem.doBuild(Subsystem.java:317)
at
org.apache.karaf.features.internal.region.Subsystem.build(Subsystem.java:269)
at
org.apache.karaf.features.internal.region.SubsystemResolver.prepare(SubsystemResolver.java:128)
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:218)
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:259)
...
Any hints on how to stabilize the KAR deployment would be greatly
appreciated!
Ralf
--
View this message in context:
http://karaf.922171.n3.nabble.com/KAR-deployment-in-Karaf-4-0-3-fails-with-varying-errors-tp4043649.html
Sent from the Karaf - User mailing list archive at Nabble.com.