Dan, you're right about the phase. I've removed that. It's set in the
constructor. It used to be needed.
My callback class is probably problematic:
package com.paraware.webservice.gawda.pricecheck;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.PasswordCallback;
import org.apache.ws.security.WSPasswordCallback;
public class BriansCallback
extends WSPasswordCallback
{
public BriansCallback()
{
//TODO id is set to "test". Need to identify what this is for
super("test", WSPasswordCallback.USERNAME_TOKEN);
}
}
Here's the stack trace:
{http://pricecheck.gawda.webservice.paraware.com}PriceAndAvailabilityService
DEBUG org.codehaus.xfire.transport.DefaultTransportManager : Registered
transport [EMAIL PROTECTED]
DEBUG org.codehaus.xfire.transport.http.HttpTransport : Creating new channel
for uri: /gawda/xfire/CustomerService
DEBUG org.codehaus.xfire.transport.DefaultEndpoint : Received message to
/gawda/xfire/CustomerService
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.util.dom.DOMInHandler in phase parse
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.security.wss4j.WSS4JInHandler in phase parse
DEBUG org.codehaus.xfire.security.wss4j.WSS4JInHandler :
WSS4JInSecurityHandler: enter invoke()
DEBUG org.codehaus.xfire.handler.DefaultFaultHandler : Fault occurred!
org.codehaus.xfire.fault.XFireFault: WSHandler: cannot create instance of
password callback: com.paraware.webservice.gawda.pricecheck.BriansCallback;
nested exception is:
java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
at
org.codehaus.xfire.security.wss4j.WSS4JInHandler.invoke(WSS4JInHandler.java:256)
at
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:98)
at
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:61)
at
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:278)
at
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:144)
at
org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:63)
at
org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:44)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.ws.security.WSSecurityException: WSHandler: cannot
create instance of password callback:
com.paraware.webservice.gawda.pricecheck.BriansCallback; nested exception
is:
java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
at
org.apache.ws.security.handler.WSHandler.getPasswordCB(WSHandler.java:810)
at
org.codehaus.xfire.security.wss4j.WSS4JInHandler.invoke(WSS4JInHandler.java:111)
... 28 more
Caused by: java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
at
org.apache.ws.security.handler.WSHandler.getPasswordCB(WSHandler.java:808)
... 29 more
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.soap.handler.FaultSoapSerializerHandler in phase
post-invoke
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.handler.CustomFaultHandler in phase user
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.transport.http.XFireServletController$FaultResponseCodeHandler
in phase transport
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.fault.FaultSender in phase send
--
View this message in context:
http://www.nabble.com/WS-Security-and-UserTokens-t1543793.html#a4214147
Sent from the XFire - User forum at Nabble.com.