Dear all,

I am trying to deploy a bundle that uses camel-spring-ws. I am stuck with
what appears to be classloader issues.
The feature descriptor looks like this:

<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.1";
name="ams-feature">
    <feature name="pas-webservice-hp" version="3.0.0-SNAPSHOT"
description="PAS Webservice for HPs">
        <feature version="2.14.0">camel-core</feature>
        <feature version="2.14.0">camel-spring</feature>
        <feature version="2.14.0">camel-blueprint</feature>
        <feature version="2.14.0">camel-spring-ws</feature>
        <bundle
dependency="true">mvn:ch.vivates.ams/base/3.0.0-SNAPSHOT</bundle>
        <bundle>mvn:ch.vivates.ams/pas-webservice-hp/3.0.0-SNAPSHOT</bundle>
    </feature>
</features>

When using blueprint the bundle "pas-webservice-hp" does not start because
it lacks a namespace handler for the Spring web-service namespace. The last
thing in the logs when trying to deploy the feature is:

    waiting for namespace handlers
[http://www.springframework.org/schema/web-services] 


When using the Spring deployer I run into ClassNotFoundException for
SimpleWsdl11Definition. The class is in spring-ws-core. The corresponding
bundle has been deployed as part of the feature dependencies as far as I can
see.

Caused by: java.lang.ClassNotFoundException:
org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition not found by
ch.vivates.ams.pas-webservice-hp [119]
        at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
        at
org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
        at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)[org.apache.felix.framework-4.2.1.jar:]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_60]
        at
org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1844)[org.apache.felix.framework-4.2.1.jar:]
        at
org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:937)[org.apache.felix.framework-4.2.1.jar:]
        at
org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99)[82:org.springframework.osgi.core:1.2.1]
        ... 17 more

karaf@root()> bundle:list -l
START LEVEL 100 , List Threshold: 50
 ID | State    | Lvl | Version        | Location
---------------------------------------------------------------------------------------------------------------------
...
115 | Active   |  50 | 2.1.4.RELEASE  |
mvn:org.springframework.ws/spring-ws-core/2.1.4.RELEASE, Fragments: 116
116 | Resolved |  50 | 2.1.4.RELEASE  |
mvn:org.springframework.ws/spring-ws-support/2.1.4.RELEASE, Hosts: 115
...


I get a tiny step further by embedding spring-ws-core into my own bundle. I
know this is not a proper solution; just to see whether it was a quick way
to solve the issue. However, this just leads to more issues:

Caused by: javax.xml.soap.SOAPException: Unable to create MessageFactory:
Provider for javax.xml.soap.MessageFactory cannot be found
        at
javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:90)[:2.4.0]
        at
org.springframework.ws.soap.saaj.SaajSoapMessageFactory.afterPropertiesSet(SaajSoapMessageFactory.java:147)[119:ch.vivates.ams.pas-webservice-hp:3.0.0.SNAPSHOT]

Spring tries to load "javax.xml.soap.SAAJMetaFactory" by name. If run
stand-alone outside of Karaf, then Spring finds the saaj classes in the
rt.jar. 
I added an explicit package import "javax.xml.soap" to the manifest. No
change. The jre.properties includes a line javax.xml.soap;version="1.3" for
my JRE version. So I thought that my bundle should be able to find the
classes?

Ultimately I will need to deploy with blueprint. Unless there is also a way
to deploy a spring context and still be able to do property replacement with
properties defined in a cfg file in $KARAF_HOME/etc?

Any help is greatly appreciated!


Ralf



--
View this message in context: 
http://apache-felix.18485.x6.nabble.com/Bundle-using-camel-spring-ws-does-not-start-missing-namespace-handler-tp5010351.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
For additional commands, e-mail: users-h...@felix.apache.org

Reply via email to