Hi,
thx for the reply. I am using Axis 1.2.1 and WSS4J 1.0. I switched to using the Callback ref. I also set the MUST_UNDERSTAND option in the WSHandlerConstants to "false". Now it works at least. What modification do you mean?
Thanks!
Michael

Michael,

strange....the correct spelling of the mustunderstand flag
ist "mustUnderstand" (attributes are case sensitive). In the
error (fault) report I see a wrong spelling "MustUnderstand" but
I cannot see how this gets set.

Is there any modification somewhere because WSS4J uses the correct
spelling (see WSConstants).

Which version of Axis and WSS4J do you use?

BTW, you may use tha cklass instead of the name using the
parameter "passwordCallbackRef" (WSHandlerConstants.PW_CALLBACK_REF).

Regards,
Werner


Michael Rudolf wrote:
I still have a problem with this type of invocation. Now i get the
following exception:


AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand
faultSubcode:
faultString: Did not understand "MustUnderstand" header(s):
faultActor:
faultNode:
faultDetail:
  {http://xml.apache.org/axis/}stackTrace:
  at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)

  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
  at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
  at org.apache.axis.client.Call.invoke(Call.java:2748)
  at org.apache.axis.client.Call.invoke(Call.java:2424)
  at org.apache.axis.client.Call.invoke(Call.java:2347)
  at org.apache.axis.client.Call.invoke(Call.java:1804)
  at
al.JCT.service.JCTSoapBindingStub.getJobStatus(JCTSoapBindingStub.java:316)
  at JobStatus.main(JobStatus.java:35)

  {http://xml.apache.org/axis/}hostname:erle

Did not understand "MustUnderstand" header(s):
  at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)

  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
  at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
  at org.apache.axis.client.Call.invoke(Call.java:2748)
  at org.apache.axis.client.Call.invoke(Call.java:2424)
  at org.apache.axis.client.Call.invoke(Call.java:2347)
  at org.apache.axis.client.Call.invoke(Call.java:1804)
  at
al.JCT.service.JCTSoapBindingStub.getJobStatus(JCTSoapBindingStub.java:316)
  at JobStatus.main(JobStatus.java:35)



This is my WSDD file. When i use this to configure Axis everything works
fine.
Thanks for any help!
Michael


<deployment xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>

<globalConfiguration >

 <requestFlow >

  <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >

   <parameter name="action" value="UsernameToken"/>

   <parameter name="passwordCallbackClass" value="PWCallback"/>

  </handler>

 </requestFlow >

</globalConfiguration >

</deployment>

Ok found a solution for this one....needed to pass a String for the
PWCallback class, not the class itself.

Hi,
im trying to contact an axis ws that uses wss4j without using a wsdd
config file. Since i switched from the WSDD to the following code, i
get the execption mentioned below. any ideas?


AxisFault
faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.ClassCastException: PWCallback
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.lang.ClassCastException:
PWCallback
  at
org.apache.ws.axis.security.WSDoAllSender.getPassword(WSDoAllSender.java:855)

  at
org.apache.ws.axis.security.WSDoAllSender.performUTAction(WSDoAllSender.java:465)

  at
org.apache.ws.axis.security.WSDoAllSender.invoke(WSDoAllSender.java:314)
  at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
  at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
  at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
  at org.apache.axis.client.Call.invoke(Call.java:2748)
  at org.apache.axis.client.Call.invoke(Call.java:2424)
  at org.apache.axis.client.Call.invoke(Call.java:2347)
  at org.apache.axis.client.Call.invoke(Call.java:1804)
  at
JCT.service.al.JCTSessionSoapBindingStub.getJobStatus(JCTSessionSoapBindingStub.java:316)

  at JobStatus.main(JobStatus.java:33)

  {http://xml.apache.org/axis/}hostname:erle

java.lang.ClassCastException: PWCallback
  at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:216)
  at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
  at org.apache.axis.client.Call.invoke(Call.java:2748)
  at org.apache.axis.client.Call.invoke(Call.java:2424)
  at org.apache.axis.client.Call.invoke(Call.java:2347)
  at org.apache.axis.client.Call.invoke(Call.java:1804)
  at
JCT.service.al.JCTSessionSoapBindingStub.getJobStatus(JCTSessionSoapBindingStub.java:316)

  at JobStatus.main(JobStatus.java:33)
Caused by: java.lang.ClassCastException: PWCallback
  at
org.apache.ws.axis.security.WSDoAllSender.getPassword(WSDoAllSender.java:855)

  at
org.apache.ws.axis.security.WSDoAllSender.performUTAction(WSDoAllSender.java:465)

  at
org.apache.ws.axis.security.WSDoAllSender.invoke(WSDoAllSender.java:314)
  at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
  at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
  ... 7 more



public class JobStatus {

    public static void main(String[] args) {
            try {
                    JCTSessionServiceLocator service = new
JCTSessionServiceLocator();
                    EngineConfiguration
clientConfig=createClientConfig();
          service.setEngineConfiguration(clientConfig);
          service.setEngine(new AxisClient(clientConfig));
                    JCTSession jct = service.getJCTSession();
                   Job[] jobs = jct.getJobStatus("rudi", null, null,
null);
      }
      catch(Exception e) {
                    e.printStackTrace();
      }
  }
    private static EngineConfiguration createClientConfig() {
            try {
          SimpleProvider clientConfig=new SimpleProvider();
          Handler securityHandler= (Handler)new WSDoAllSender();

          securityHandler.setOption(WSHandlerConstants.ACTION,
"UsernameToken");
//securityHandler.setOption(WSHandlerConstants.SIG_PROP_FILE,this.WSS_SIG_PROPERTIES);


          securityHandler.setOption(WSHandlerConstants.USER, "rudi");

securityHandler.setOption(WSHandlerConstants.PW_CALLBACK_CLASS, new
PWCallback());
           SimpleChain reqHandler=new SimpleChain();
           SimpleChain respHandler=new SimpleChain();
           // add the handler to the request
           reqHandler.addHandler(securityHandler);
           // add the handler to the response
           respHandler.addHandler(securityHandler);
           Handler pivot=(Handler)new HTTPSender();
           Handler transport=new
          SimpleTargetedChain(reqHandler, pivot, respHandler);

clientConfig.deployTransport(HTTPTransport.DEFAULT_TRANSPORT_NAME,transport);

                    return clientConfig;
      }
      catch(Exception e) {
                    e.printStackTrace();
          return null;
      }
  }
}


public class PWCallback implements CallbackHandler {

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

      for (int i = 0; i < callbacks.length; i++) {

          if (callbacks[i] instanceof WSPasswordCallback) {

              WSPasswordCallback pc = (WSPasswordCallback)
callbacks[i];

              // set the password given a username
              if("rudi".equals(pc.getIdentifer())) {

                  pc.setPassword("dsgxdgsfsdgfsdgs");
              }
          }
          else {

              throw new UnsupportedCallbackException(callbacks[i],
"Unrecognized Callback");
          }
      }
  }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to