CXF client fails to load WSS4J PasswordCallbackHandler despite it being present in the OSGi bundle

Solution Verified - Updated -

Issue

We have a JAX-WS client application running inside JBoss Fuse 6.2.1 that is configured to use WS-Security.
Its important to note that this JAX-WS client is instantiated and configured programmatically, not using Spring or Blueprint.
When the WS-Security layer (WSS4J) initializes, it fails to load the configured PasswordCallbackHandler class and raises the following error despite the class existing inside the same OSGi bundle.

12:11:02,228 | WARN  | ExtenderThread-6 | Loader | 366 - org.apache.wss4j.wss4j-ws-security-common - 2.0.3 | 
com.mycompany.PasswordCallbackHandler not found from bundle [bundleB]
java.lang.ClassNotFoundException: com.mycompany.PasswordCallbackHandler not found from bundle [bundleA]

Full error with stack trace shown in Diagnostics section.

What's worth noticing is the fact that the ClassNotFoundException refers to bundleA whereas the JAX-WS client code is actually executed in a different bundleB.
There is another bundleA deployed in our Karaf container that also uses CXF.

Environment

  • JBoss Fuse
    • 6.2.1
    • 6.2.1 R3

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.