Hi All,

I am using JiBX for implementing my own (De)Serializers replacing AXIS default (De)Serializers. However when I register my (De)Serializers with AXIS's server-config.wsdd file and start my web service deployed on WebSphere 5.0, I am getting below detailed server stack trace :


[2/6/05 17:04:20:345 IST] 39ce702e WebGroup I SRVE0180I: [Apache-Axis] [/Axis11Rc2IrscEjbWeb] [Servlet.LOG]: AdminServlet: init
[2/6/05 17:04:20:814 IST] 39ce702e WebGroup I SRVE0180I: [Apache-Axis] [/Axis11Rc2IrscEjbWeb] [Servlet.LOG]: SOAPMonitorService: init
[2/6/05 17:05:03:204 IST] 152a3029 WebGroup I SRVE0180I: [Apache-Axis] [/Axis11Rc2IrscEjbWeb] [Servlet.LOG]: AxisServlet: init
[2/6/05 17:05:07:236 IST] 152a3029 WebGroup E SRVE0026E: [Servlet Error]-[: incorrect call to interface method ]: java.lang.IncompatibleClassChangeError: : incorrect call to interface method
at com.tri.TriJibxDeser.onEndElement(TriJibxDeser.java:74)
at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:534)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1001)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:204)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:718)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:232)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:346)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:184)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:330)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:475)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:948)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:530)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:610)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:431)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)



Here is the code of my JiBX Deserializer java class :


--------------------------------------------------------
public class TriJibxDeser extends DeserializerImpl
{

    public TriJibxDeser(Class clas, QName qname, IUnmarshallingContext uctx)
    {
        m_javaType = clas;
        m_xmlType = qname;
        m_context = uctx;
    }

    public void onEndElement(String ns, String lname, DeserializationContext dctx)
        throws SAXException
    {
        if(!m_xmlType.getNamespaceURI().equals(ns) || !m_xmlType.getLocalPart().equals(lname))
        {
            throw new SAXException("incompatable type passed to JiBX deserializer");
        }
        MessageElement element = dctx.getCurElement();
        if(element != null)
        {
            String text = null;
            try
            {
                text = element.toString();
                value = m_context.unmarshalDocument(new StringReader(text));
            }
            catch(JiBXException e)
            {
                throw new SAXException("error in JiBX deserialization : " + e.getMessage(), e);
            }
            catch(Exception e)
            {
                throw new SAXException("Error reading element text: " + e.getMessage(), e);
            }
        }
    }

    private static Log s_log;
    private QName m_xmlType;
    private Class m_javaType;
    private IUnmarshallingContext m_context;
}
--------------------------------------------------------



Can anyone tell how do I go ahead and debug this problem and find a solution. Please suggest ?

Thanks & Regards,
Kumar.