PicketLink with WebApplication containing CXF based REST WS

Version 1

    Hello, I have picketLink working fine for SAML token when i have simple web application or simple JAX-WS implementation on the client side.

    However, whe I tested the same implementation with the web application containing the CXF based RESTful webservices, initial WS-Trust call is failing. Below is the Error that I am getting:

     

    2011-07-13 16:14:58,034 TRACE [org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSIssuingLoginModule] (http-10.158.143.95-25027-1) initialize

    2011-07-13 16:14:58,034 TRACE [org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSIssuingLoginModule] (http-10.158.143.95-25027-1) Security domain: wsi-client

    2011-07-13 16:14:58,034 TRACE [org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSIssuingLoginModule] (http-10.158.143.95-25027-1) login

    2011-07-13 16:14:58,086 ERROR [org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSIssuingLoginModule] (http-10.158.143.95-25027-1) failed to create STSClient instance

    java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/utils/NamespacePrefixList

            at org.apache.cxf.jaxws.JaxWsClientFactoryBean.<init>(JaxWsClientFactoryBean.java:37)

            at org.apache.cxf.jaxws.ServiceImpl.createDispatch(ServiceImpl.java:600)

            at org.apache.cxf.jaxws.ServiceImpl.createDispatch(ServiceImpl.java:592)

            at javax.xml.ws.Service.createDispatch(Service.java:218)

            at org.picketlink.identity.federation.core.wstrust.STSClient.<init>(STSClient.java:83)

    at org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSIssuingLoginModule.login(SAML2STSIssuingLoginModule.java:166)

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

            at java.lang.reflect.Method.invoke(Method.java:597)

            at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)

            at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)

            at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)

            at java.security.AccessController.doPrivileged(Native Method)

            at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)

            at javax.security.auth.login.LoginContext.login(LoginContext.java:579)