hi,

getting the same problem... has anyone got the answer to this one?

thanks!


Zarar Siddiqi wrote:
> 
> I'm trying to implement ws-security using JSR181 annotations and wrote a
> custom handler which contains all the other handlers, since handlers with
> parameters cannot be used in annotations.  The service is deployed fine bu
> every time I try to invoke it, I get the following exception:
> 
> 
> Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could
> not invoke service.. Nested exception is
> org.codehaus.xfire.fault.XFireFault: Header
> {Security}http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> was not undertsood by the service.
> org.codehaus.xfire.fault.XFireFault: Header
> {Security}http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> was not undertsood by the service.
>       at
> org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
>       at
> org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
>       at
> org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
>       at
> org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
>       at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at org.codehaus.xfire.client.Client.onReceive(Client.java:382)
>       at
> org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
>       at
> org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
>       at
> org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
>       at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
>       at org.codehaus.xfire.client.Client.invoke(Client.java:335)
>       at 
> org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
>         ......
> 
> I'm not sure what this means.
> 
> Here's the Custom Handler class:
> 
> public class WSSecurityHandler extends AbstractHandler {
> 
>     List<Handler> inHandlers;
> 
>     public WSSecurityHandler() {
>         WSS4JInHandler wss4jInHandler;
>         ValidateUserTokenHandler userTokenHandler;
> 
>         Properties props = new Properties();
>         props.put("action", "UsernameToken");
>         props.put("passwordCallbackClass",
> PasswordHandler.class.getName());
>         wss4jInHandler = new WSS4JInHandler(props);
>         userTokenHandler = new ValidateUserTokenHandler();
> 
>         inHandlers = new ArrayList<Handler>();
>         inHandlers.add(wss4jInHandler);
>         inHandlers.add(userTokenHandler);
>     }
>     public void invoke(MessageContext messageContext) throws Exception {
>         for (Handler handler : inHandlers) {
>             handler.invoke(messageContext);
>         }
>     }
> }
> 
> 
> and here's how the service class is annotated:
> 
> @WebService(endpointInterface = "my.package.PersonService")
> @InHandlers(handlers={"my.package.WSSecurityHandler",
> "org.codehaus.xfire.util.dom.DOMInHandler"})
> public class PersonSoapService implements PersonService {
> 
> 
> Here's the calling code:
> 
>         Properties properties = new Properties();
>         properties.setProperty(WSHandlerConstants.ACTION,
> WSHandlerConstants.USERNAME_TOKEN);
>         properties.setProperty(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_DIGEST);
>         properties.setProperty(WSHandlerConstants.USER, "serveralias");
>         properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,
> PasswordHandler.class.getName());
> 
>         Service serviceModel = new
> ObjectServiceFactory().create(PersonService.class, "PersonService",
> "http://xfire.codehaus.org/PersonService";, null);
>         PersonService service = (PersonService) new
> XFireProxyFactory().create(serviceModel,
> "http://localhost:8080/ws-core/services/PersonSoapService";);
>         Client client = ((XFireProxy)
> Proxy.getInvocationHandler(service)).getClient();
>         client.addOutHandler(new DOMOutHandler());
>         client.addOutHandler(new WSS4JOutHandler(properties));
>         service.doStuff();// invoke service
> 
> 
> I'm following ws-security example in the XFire 1.2.4 distribution
> 
> Any help is appreciated.  
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/%22XSD-was-not-undertsood-by-the-service%22-when-using-JSR181-and-ws-security-tf3017986.html#a11093476
Sent from the XFire - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to