CXF Security on JBoss 5.1 NotImplementedException
===

I am using Java 6 , Spring 3.0.5.RELEASE , Apache CXF 2.4.1, JBoss 5.1.
My configuration works on Tomcat 7 but on JBoss when i send a SOAP message to server i got NotImplementedException.

    Service has thrown exception, unwinding now org.jboss.util.NotImplementedException
	at org.jboss.ws.core.soap.SOAPPartImpl.appendChild(SOAPPartImpl.java:298)
	at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:970)
	at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:947)
	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:157)
	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:118)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:208)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:205)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:113)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
	



**applicationContext.xml**



    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
    <import resource="classpath*:META-INF/cxf/cxf-extension-*.xml" />

    <jaxws:endpoint id="myServiceEndPoint" implementor="#myService" address="/myService">
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
				<constructor-arg>
					<map>
						<entry key="action" value="UsernameToken" />
						<entry key="passwordType" value="PasswordDigest" />
						<entry key="signaturePropFile" value="..." />
						<entry key="passwordCallbackRef">
							<ref bean="myPasswordCallback" />
						</entry>
					</map>
				</constructor-arg>
			</bean>
		</jaxws:inInterceptors>
	</jaxws:endpoint>

	<bean id="myPasswordCallback" class="com.middleware.security.ServerPasswordCallback" />


**ServerPasswordCallback.java**

    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import org.apache.ws.security.WSPasswordCallback;

    public class ServerPasswordCallback implements CallbackHandler {

         public void handle(Callback[] callbacks) throws IOException,
			UnsupportedCallbackException {

		WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];

		if (pc.getIdentifier().equals("nbi")) {
			pc.setPassword("123");
		}
	}
    }  

