JAXWS handlers
kj_newbie Jun 9, 2009 4:46 PMHello,
I am new to JBossWS and my task is to get a given WS work with Handlers. The handlers are responsible for securing the SOAP Request through another API (to be precise - OpenSSO STS API)
I got this to work on Weblogic container and since JAX WS is a standard followed by JBoss also, I would assume, the same handler implementation would work here too (with minor config changes). But, I get the following exception when I run the client.
13:32:06,250 ERROR [STDERR] java.lang.IllegalArgumentException: SOAPElement expected 13:32:06,250 ERROR [STDERR] at org.jboss.ws.core.soap.SOAPBodyImpl.convertToBodyElement(SOAPBody Impl.java:296) 13:32:06,250 ERROR [STDERR] at org.jboss.ws.core.soap.SOAPBodyImpl.appendChild(SOAPBodyImpl.java :200) 13:32:06,250 ERROR [STDERR] at com.sun.identity.wss.sts.TrustAuthorityClient.getTrustResponse(Tr ustAuthorityClient.java:566) 13:32:06,250 ERROR [STDERR] at com.sun.identity.wss.sts.TrustAuthorityClient.getSTSToken(TrustAu thorityClient.java:540) 13:32:06,250 ERROR [STDERR] at com.sun.identity.wss.sts.TrustAuthorityClient.getSecurityToken(Tr ustAuthorityClient.java:280) 13:32:06,250 ERROR [STDERR] at com.sun.identity.wss.sts.TrustAuthorityClient.getSecurityToken(Tr ustAuthorityClient.java:108) 13:32:06,312 ERROR [STDERR] at com.sun.identity.wss.security.handler.SOAPRequestHandler.secureRe quest(SOAPRequestHandler.java:607) 13:32:06,312 ERROR [STDERR] at com.sun.samples.ClientHandler.handleMessage(ClientHandler.java:70 ) 13:32:06,312 ERROR [STDERR] at com.sun.samples.ClientHandler.handleMessage(ClientHandler.java:1) 13:32:06,312 ERROR [STDERR] at org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessag e(HandlerChainExecutor.java:305)
I am not sure what's causing this exception so for debugging, I start with the handler config files for JBoss. The handler on the client side looks like the following. Does it look right or am I missing something here?
<bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" wsdlLocation="http://localhost:8080/StockQuoteImpl?WSDL" xmlns="http://java.sun.com/xml/ns/jaxws"> <bindings node="wsdl:definitions" xmlns:jws="http://java.sun.com/xml/ns/javaee"> <handler-chains xmlns="http://java.sun.com/xml/ns/javaee"> <handler-chain> <handler> <handler-class>com.sun.samples.ClientHandler</handler-class> </handler> </handler-chain> </handler-chains> </bindings> </bindings>
On the server side it is as follows:
<?xml version="1.0" encoding="UTF-8"?> <handler-config> <handler-chains xmlns="http://java.sun.com/xml/ns/javaee"> <handler-chain> <handler-chain-name>SimpleChain</handler-chain-name> <handler> <handler-name>handler1</handler-name> <handler-class>com.sun.samples.ServerHandler</handler-class> </handler> </handler-chain> </handler-chains> </handler-config>
Any insights/useful hints will be greatly appreciated.
Thanks