You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Carlos González-Cadenas <cg...@extendnow.com> on 2002/08/09 17:39:02 UTC
RPC Call with a Bean Parameter
Hi All!
I have followed guidelines to deploy a webservice, and one of my
operations(storeDocument) take a JavaBean parameter(XMLDocument), defined as
follows in the WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:XMLRepository"
xmlns="http://schemas.xmls
oap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="urn
:XMLRepository-impl" xmlns:intf="urn:XMLRepository"
xmlns:soapenc="http://schema
s.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmln
s:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/
2001/XMLSchema">
<wsdl:types>
<schema targetNamespace="urn:XMLRepository"
xmlns="http://www.w3.org/2001/XMLS
chema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="XMLDocument">
<sequence>
<element name="content" nillable="true" type="soapenc:string"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="version" type="xsd:long"/>
</sequence>
</complexType>
<element name="XMLDocument" nillable="true" type="intf:XMLDocument"/>
</schema>
</wsdl:types>
<wsdl:message name="createCollectionRequest">
<wsdl:part name="in0" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="storeDocumentRequest">
<wsdl:part name="in0" type="intf:XMLDocument"/>
</wsdl:message>
<wsdl:message name="storeDocumentResponse">
</wsdl:message>
<wsdl:message name="createCollectionResponse">
</wsdl:message>
<wsdl:message name="retrieveDocumentResponse">
<wsdl:part name="return" type="intf:XMLDocument"/>
</wsdl:message>
<wsdl:message name="retrieveDocumentRequest">
<wsdl:part name="in0" type="soapenc:string"/>
</wsdl:message>
<wsdl:portType name="XMLRepository">
<wsdl:operation name="createCollection" parameterOrder="in0">
<wsdl:input message="intf:createCollectionRequest"
name="createCollecti
onRequest"/>
<wsdl:output message="intf:createCollectionResponse"
name="createCollec
tionResponse"/>
</wsdl:operation>
<wsdl:operation name="storeDocument" parameterOrder="in0">
<wsdl:input message="intf:storeDocumentRequest"
name="storeDocumentRequ
est"/>
<wsdl:output message="intf:storeDocumentResponse"
name="storeDocumentRe
sponse"/>
</wsdl:operation>
<wsdl:operation name="retrieveDocument" parameterOrder="in0">
<wsdl:input message="intf:retrieveDocumentRequest"
name="retrieveDocume
ntRequest"/>
<wsdl:output message="intf:retrieveDocumentResponse"
name="retrieveDocu
mentResponse"/>
</wsdl:operation>
</wsdl:portType>
......
after, i have defined the typeMapping in the wsdd as follows
<typeMapping
xmlns:ns="urn:XMLRepository"
qname="ns:XMLDocument"
languageSpecificType="java:com.extendnow.qproject.webservices.repository
.XMLDocument"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
but, unfortunately, i get the exception...
09-ago-2002 17:28:45 org.apache.axis.client.Call invoke
INFO: Mapping Exception to AxisFault
AxisFault
faultCode: {http://xml.apache.org/axis/}Server.userException
faultString: org.xml.sax.SAXException: Bad types (null -> class
com.extendnow.q
project.webservices.repository.XMLDocument)
faultActor: null
faultDetail:
stackTrace: org.xml.sax.SAXException: Bad types (null -> class
com.ex
tendnow.qproject.webservices.repository.XMLDocument)
at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:207)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:857)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:199)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:644)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:201)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:259)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:161)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
289)
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.server.AxisServer.invoke(AxisServer.java:312)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:57
7)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4
05)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372
)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.
java:812)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:758
)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio
n(HttpConnectionHandler.java:213)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java
:501)
at java.lang.Thread.run(Thread.java:536)
org.xml.sax.SAXException: Bad types (null -> class
com.extendnow.qproject.webser
vices.repository.XMLDocument)
at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.
java:135)
at
org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:904)
at
org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXPar
ser.java:579)
at
org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespa
ceBinder.java:897)
at
org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBind
er.java:643)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDVal
idator.java:1972)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator
.java:878)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElemen
t(XMLDocumentFragmentScannerImpl.java:1144)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(
XMLDocumentFragmentScannerImpl.java:987)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1445)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XM
LDocumentFragmentScannerImpl.java:333)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:524)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:580)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1169)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at
org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:213)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:457)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:362)
at org.apache.axis.client.Call.invokeEngine(Call.java:2046)
at org.apache.axis.client.Call.invoke(Call.java:2016)
at org.apache.axis.client.Call.invoke(Call.java:1786)
at org.apache.axis.client.Call.invoke(Call.java:1711)
at org.apache.axis.client.Call.invoke(Call.java:1251)
at TestClient.main(TestClient.java:41)
AxisFault
faultCode: {http://xml.apache.org/axis/}Server.userException
faultString: org.xml.sax.SAXException: Bad types (null -> class
com.extendnow.q
project.webservices.repository.XMLDocument)
faultActor: null
faultDetail:
stackTrace: org.xml.sax.SAXException: Bad types (null -> class
com.ex
tendnow.qproject.webservices.repository.XMLDocument)
at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:207)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:857)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:199)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:644)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:201)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:259)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:161)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
289)
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.server.AxisServer.invoke(AxisServer.java:312)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:57
7)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4
05)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372
)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.
java:812)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:758
)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio
n(HttpConnectionHandler.java:213)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java
:501)
at java.lang.Thread.run(Thread.java:536)
org.xml.sax.SAXException: Bad types (null -> class
com.extendnow.qproject.webser
vices.repository.XMLDocument)
at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.
java:135)
at
org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:904)
at
org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXPar
ser.java:579)
at
org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespa
ceBinder.java:897)
at
org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBind
er.java:643)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDVal
idator.java:1972)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator
.java:878)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElemen
t(XMLDocumentFragmentScannerImpl.java:1144)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(
XMLDocumentFragmentScannerImpl.java:987)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1445)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XM
LDocumentFragmentScannerImpl.java:333)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:524)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:580)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1169)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at
org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:213)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:457)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:362)
at org.apache.axis.client.Call.invokeEngine(Call.java:2046)
at org.apache.axis.client.Call.invoke(Call.java:2016)
at org.apache.axis.client.Call.invoke(Call.java:1786)
at org.apache.axis.client.Call.invoke(Call.java:1711)
at org.apache.axis.client.Call.invoke(Call.java:1251)
at TestClient.main(TestClient.java:41)
Could somebody help me?. People getting this kind of exceptions were not
putting the typeMapping in the wsdd.
Thank you very much in advance.
Carlos Gonzalez-Cadenas
e-xtendnow.