Honestly, I'm not sure how to approach this. I know Talend's WS-Security based things that require Crypto's are working fine. I guess it could be some difference in classloaders or something between spring-dm and blueprint or similar. Is there a way to create a small example? I'd likely need to see how and when the service is created...
THAT said, the line: org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:114) [77: sample.qualifier] at shows that it's using your application classloader. Thus, you can likely get around this by adding a "Require-Bundle: wss4j" attribute to the manifest. That may allow it to get the class. I'd still like to see a testcase though. :-) Dan On Tuesday, September 20, 2011 4:03:34 PM Malisetti, Ramanjaneyulu wrote: > Hi, > Another blocker while migrating from CXF 2.3 to 2.4.2. We are starting > JAX-WS and REST end point from a bundle which runs in OSGi container. I > have all CXF jars that come with 2.4.2 distribution including > wss4j-1.6.2.jar. Though Merlin is in classpath, the following exception is > coming. > > I have read in CXF forums that this exception generally comes if conflicting > versions of WSS4J jar in classpath. But, in our case there is no such > possibility. > > > Do you have any suggestion? > > Caused by: org.apache.ws.security.WSSecurityException: > org.apache.ws.security.components.crypto.Merlin Not Found > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFa > ctory.java:114)[77: sample.qualifier] at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFa > ctory.java:78)[77: sample.qualifier] at > org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getC > rypto(AbstractBindingBuilder.java:1332)[77: sample.qualifier] at > org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getS > ignatureCrypto(AbstractBindingBuilder.java:1258)[77: sample.qualifier] at > org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getS > ignatureBuilder(AbstractBindingBuilder.java:1569)[77: sample.qualifier] at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.do > Signature(AsymmetricBindingHandler.java:462)[77: sample.qualifier] at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.do > SignBeforeEncrypt(AsymmetricBindingHandler.java:133)[77: sample.qualifier] > ... 14 more > Caused by: java.lang.ClassNotFoundException: > org.apache.ws.security.components.crypto.Merlin > > at > org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoade > r.java:506)[osgi-3.6.2.R36x_v20110210.jar:] at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:4 > 22)[osgi-3.6.2.R36x_v20110210.jar:] at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:4 > 10)[osgi-3.6.2.R36x_v20110210.jar:] at > org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultC > lassLoader.java:107)[osgi-3.6.2.R36x_v20110210.jar:] at > java.lang.ClassLoader.loadClass(ClassLoader.java:251)[:1.6.0_05] at > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)[:1.6.0_05] at > java.lang.Class.forName0(Native Method)[:1.6.0_05] at > java.lang.Class.forName(Class.java:169)[:1.6.0_05] at > org.apache.ws.security.util.Loader.loadClass(Loader.java:243)[77:sample.qua > lifier] at org.apache.ws.security.util.Loader.loadClass(Loader.java:221)[77: > sample.qualifier] at > org.apache.ws.security.util.Loader.loadClass(Loader.java:215)[77: > sample.qualifier] at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFa > ctory.java:109)[77: sample.qualifier] ... 20 more > > Thanks & Regards > Raman -- Daniel Kulp [email protected] http://dankulp.com/blog Talend - http://www.talend.com
