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 -&gt; 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 -&gt; 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.