Facing issues while using "spring-ws" to call SOAP webservices, while deploying my bundle in Fuse 6.3, the following errors occured:
java.lang.NoClassDefFoundError: org/springframework/beans/factory/InitializingBean
java.lang.NoClassDefFoundError: org/springframework/ws/client/core/WebServiceTemplate
java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException
I had installed the feature camel-spring-ws which installs : Apache ServiceMix :: Bundles :: spring-ws-core
Upon further investigating the error, I could see the class WebServiceTemplate is being used by the spring-ws-core bundle, which in-turn imports the package org.springframework.core;resolution:=optional;version="[4,5)".
Here the package version expected by the spring-ws-core bundle does not match the one being exported by spring-core bundle which comes with Fuse Installation.
Spring-core bundle exports org.springframework.core;version=3.2.16.RELEASE,
Hence, causing the NoClassDefFoundError for these classes.
So, I tried changing all the export versions from [4,5) to [3.5) in the Manifest file of the spring-ws-core bundle, those errors got resolved but then I came across a new error
Invocation of init method failed; nested exception is org.springframework.ws.soap.SoapMessageCreationException: Could not create SAAJ MessageFactory: Provider org.apache.axis2.saaj.SAAJMetaFactoryImpl not found; nested exception is javax.xml.soap.SOAPException: Provider org.apache.axis2.saaj.SAAJMetaFactoryImpl not found
For this, I had to explicitly install the axis2-saaj-1.5.5.jar in my karaf to make this work.
So, there are two issues here:
- The version mismatch for spring libraries
- The Sun's saaj jar being explicitly required
- relates to
-
ENTESB-6621 saaj.SaajSoapMessageFactory class loading issues on fuse 6.3
- Closed