You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Jian Zhang <jz...@symcor.com> on 2002/09/30 22:02:43 UTC

SOAP message not well formed.

With a lot of help from James Black, I can finally get server side code
executed till the end of operation that returns an array of my own object
Folder.

However, on the client side, I got:

========================
 faultString: org.xml.sax.SAXParseException: The root element is required in
a
well-formed document.
 faultActor: null
 faultDetail:
        stackTrace: org.xml.sax.SAXParseException: The root element is
required
in a well-formed document.
        at
org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:121
)
=========================
tcpmon reported an empty SOAP message (but with HTTP response header).

My client side code is like this:

       Service  service = new Service();
        Call     call    = (Call) service.createCall();

        call.setTargetEndpointAddress( new java.net.URL(serverUrl) );
        call.setOperationName(new QName(serviceName, operationName));


        System.out.println ("\n\n\n\n: service " + serviceName);
        QName    qn      = new QName( "urn:MyRequestorService", "Folder" );
        call.registerTypeMapping(Folder.class, qn,
                      new
org.apache.axis.encoding.ser.BeanSerializerFactory(Folder.class, qn),
                      new
org.apache.axis.encoding.ser.BeanDeserializerFactory(Folder.class, qn));
        //
//       call.setReturnType( new QName("",
(javax.xml.rpc.encoding.XMLType.SOAP_ARRAY);
//        org.apache.axis.encoding.XMLType.
//        call.setReturnType( new QName
(org.apache.axis.encoding.XMLType.ATTR_ARRAY_TYPE, "symcor:folderArray") );
        call.setReturnType( new QName
(org.apache.axis.encoding.XMLType.ATTR_ARRAY_TYPE, "urn:MyRequestorService")
);


        Folder[] ret = (Folder[]) call.invoke( new Object[] {configDir,
appName, serverName, loginName, password } );


Is there anything wrong with my code?

Thanks,

my deployment descriptor is:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="MyRequestorService" provider="java:RPC">
  <parameter name="className" value="com.symcor.od.server.soap.AxisFacade"/>
  <parameter name="allowedMethods" value="*"/>

      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:Folder"
        type="java:com.symcor.od.common.soap.message.Folder"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:MyArrayOfFolder"
        type="java:com.symcor.od.common.soap.message.Folder[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:Criterion"
        type="java:com.symcor.od.common.soap.message.Criterion"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:MyArrayOfCriterion"
        type="java:com.symcor.od.common.soap.message.Criterion[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:Hit"
        type="java:com.symcor.od.common.soap.message.Hit"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:MyArrayOfHit"
        type="java:com.symcor.od.common.soap.message.Hit[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
      <typeMapping
        xmlns:ns="urn:MyRequestorService"
        qname="ns:HitList"
        type="java:com.symcor.od.common.soap.message.HitList"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />
 </service>
</deployment>

Anyone has a similiar problem?