Hi,
I have built a small webservice with JAX-RPC, that runs under Sun Java system
application server pe 8.1 (2005Q1). The service runs fine but when I add a
handler to it, I get ClassCastException. I deployed the service with
deploytool.
Here is the code of my test handler:
package ApiTaMo;
import javax.xml.namespace.QName;
import javax.xml.rpc.handler.HandlerInfo;
import javax.xml.rpc.handler.MessageContext;
public class testHandler implements javax.xml.rpc.handler.Handler
{
private QName[] headers;
public testHandler() {
}
public void init(HandlerInfo config) {
headers = config.getHeaders();
System.out.println("Init...");
}
public boolean handleFault(MessageContext context) {
System.out.println("handleFault...");
return true;
}
public boolean handleRequest (MessageContext context) {
System.out.println("handleRequest...");
return true;
}
public boolean handleResponse (MessageContext context) {
System.out.println("handleResponse...");
return true;
}
public javax.xml.namespace.QName[] getHeaders() {
return headers;
}
public void destroy() {
}
}
and here is the stacktrace:
[#|2005-03-10T12:04:54.656+0200|SEVERE|sun-appserver-
pe8.1|com.sun.xml.rpc.serv er|_ThreadID=25;|JAXRPCTIE01: caught exception
while handling request: java.lang.ClassCastException
java.lang.ClassCastException
at com.sun.enterprise.webservice.WsUtil.throwSOAPFaultException
(WsUtil.java:972)
at com.sun.enterprise.webservice.ServletPreHandler.handleRequest
(ServletPreHandler .java:68)
at com.sun.xml.rpc.client.HandlerChainImpl.handleRequest
(HandlerChainImpl.java:86)
at com.sun.xml.rpc.server.StreamingHandler.callRequestHandlers
(StreamingHandler.ja va:918)
at com.sun.xml.rpc.server.StreamingHandler.preHandlingHook
(StreamingHandler.java:8 31)
at ApiTaMo.TamoIF_Tie.preHandlingHook(TamoIF_Tie.java:236)
at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:102)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost
(JAXRPCServletDelegate. java:443)
at com.sun.enterprise.webservice.JAXRPCServlet.doPost(JAXRPCServlet.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.ja va:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege
(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFil terChain.java:257)
at org.apache.catalina.core.ApplicationFilterChain.access$000
(ApplicationFilterCha in.java:55)
at org.apache.catalina.core.ApplicationFilterChain$1.run
(ApplicationFilterChain.ja va:161)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain .java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java: 263)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextVal ve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java: 173)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:161)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:13 2)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:184)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process
(ProcessorTask.ja va:653)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process
(ProcessorTask.ja va:534)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask
(ProcessorTask.jav a:403)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run
(WorkerThread.java:55)
|#]
Can someone please help me with this? Is there something wrong with the code?
---
Rami