File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Web Services and the fly likes WSHandler: cannot create instance of password callback Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "WSHandler: cannot create instance of password callback" Watch "WSHandler: cannot create instance of password callback" New topic

WSHandler: cannot create instance of password callback

prashant potluri

Joined: Aug 08, 2007
Posts: 2
I am a newbie to axis2 and rampart. I am using tomcat and axis2-1.2. I am trying to secure a web service using username token

My service is as follows:

public class MyHello {
public String sayHello(String s){
return "HELLO"+" "+s;
} }

CallbackHandler is as follows :

public class PwdCallBackHandler implements CallbackHandler{
public void handle(Callback[] callbacks) throws IOException,UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
String id = pwcb.getIdentifer();
if("myname".equals(id)) {
} } }

service.xml looks as follows:

<service name="MyHello" >
Sample Web Service for Username Token
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
<parameter name="ServiceClass" locked="false">testpack.MyHello</parameter>
<module ref="rampart" />
<parameter name="InflowSecurity">
<items>UsernameToken Timestamp</items>

I also created client.axis2.xml similar to given in samples where i changed the existing values to:

<module ref="rampart" />
<parameter name="OutflowSecurity">
<items>UsernameToken Timestamp</items>

I created stubs for my service. my Client is as follows:

public class MyHelloClient{
public static void main(String[] args) {
MyHelloMyHelloSOAP11PortStub stub = new MyHelloMyHelloSOAP11PortStub("http://localhost:8080/axis2/services/MyHello");
MyHelloMyHelloSOAP11PortStub.SayHello sayHello = new MyHelloMyHelloSOAP11PortStub.SayHello();
MyHelloMyHelloSOAP11PortStub.SayHelloResponse resp = stub.sayHello(sayHello);
System.out.println("Response from Web Service -->"+resp.get_return());
}catch(Exception ex){

I get the following exception when i run the client :

org.apache.axis2.AxisFault: WSHandler: cannot create instance of password callback: testpack.PwdCallBackHandler; nested exception is:

java.lang.ClassCastException: testpack.PwdCallBackHandler

at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(

at org.apache.axis2.description.OutInAxisOperationClient.send(

at org.apache.axis2.description.OutInAxisOperationClient.execute(

at testpack.MyHelloMyHelloSOAP11PortStub.sayHello(

at testpack.MyHelloClient.main(
I agree. Here's the link:
subject: WSHandler: cannot create instance of password callback
It's not a secret anymore!