I'm new to FuseESB and am trying to test interoperability with an external web service secured by SAML SV. I'm having an issue with my osgi bundle resolving a class when building the SAML Token to place in an outgoing web service request.
Caused by: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant
at org.apache.ws.security.saml.ext.AssertionWrapper.<init>(AssertionWrapper.java:279)
130:org.apache.ws.security.wss4j:1.6.1
at org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.addSamlToken(AbstractBindingBuilder.java:891)
132:org.apache.cxf.bundle:2.4.3.fuse-01-02
...
Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by org.apache.ws.security.wss4j
130
at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:845)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:74)
at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1839)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
:1.6.0_30
This happens whether I manually instantiate the CXF client or configure it via spring. I have tried adding the joda-time bundle explicitly as a dependency but this makes no difference. In addition, while my bundle only uses this package indirectly, I have explicitly added to the list of packages to import and again this makes no difference.
Does anyone have any pointers of where I can look to debug this issue?
wss4j and joda-time appear to be installed and active.
karaf@root> osgi:list | grep -i wss
130 Active [ ] [ ]
50 WSS4J (1.6.1)
220 Installed [ ] [ ]
60 WSS4J (1.6.6.SNAPSHOT)
karaf@root> osgi:list | grep -i joda
140 Active [ ] [ ]
50 Apache ServiceMix Bundles: joda-time-1.5.2 (1.5.2.2)
Though I'm rather new to osgi so there's likely something else I'm overlooking. I have enabled trace logging as well and nothing jumps out at me.
Thanks.