Hi,
I am using Castor Deserializer and Castor Serializer with Axis.
But when Axis invoke Castor Deserializer, Castor is complaining about missing
FieldDescriptor in ClassDescriptor, though I have all files generated by Castor in my
classpath. I am using Castor-0.9.5.1 and Axis 1.1 with the latest code from CVS for
all Castor related files. Given below is my stack trace. I am also attaching my xml
file and xsd file with this email.
Any feedback will be deeply appreciated.
Thanks in advance,
Ranjith Pillai.
- Unable to marshall between XML and Castor Objects :
org.xml.sax.SAXException: unable to find FieldDescriptor for 'credit' in ClassDe
scriptor of credit
at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
java:1249)
at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:245)
at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:182)
at org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventP
roducer.java:333)
at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:247)
at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:182)
at org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.ja
va:110)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:507)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:591)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:692)
at org.apache.axis.encoding.ser.castor.CastorDeserializer.onEndElement(C
astorDeserializer.java:101)
at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl
.java:534)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:1015)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:204)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:722)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:184)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.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:481
)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:85
4)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
)
<credit xmlns="http://globalops.com/credit">
<cNo>5678</cNo>
<expMo>04</expMo>
<expYr>04</expYr>
<amount>1500</amount>
</credit>
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://globalops.com/credit" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<element name="credit">
<complexType>
<sequence>
<element name="cNo" type="integer"/>
<element name="expMo" type="integer"/>
<element name="expYr" type="integer"/>
<element name="amount" type="integer"/>
</sequence>
</complexType>
</element>
</schema>