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 Phil Miller <ph...@skabenga.com> on 2002/08/20 13:46:51 UTC

No deserializer defined for array type

Hi,

I am using axis beta 3 on apache 3.2.3 as a server, and consuming from:

1: a test program harnessed inside jbuilder
2: a stateless ejb inside Borland App Server


the test program successfully consumes the service, and receives an array of
Beans.
the stateless ejb throws the following exception:
	org.xml.sax.SAXException: No deserializer defined for array type
{urn:EleadsService}LeadBean

I am using the same client side code in the test harness and the ejb. could
this be a classloading issue?

I have provided classpath info for both test harness and ejb, a snippet of
client code, and a server-config.wssd snippet below.

Thanks for any help on this, much appreciated,
Phil



***************** classloading for the test harness is:

D:\dev\java\jbuilder7\jdk1.3.1\bin\javaw -classpath
"D:\projects\integration\classes;D:\projects\integration\lib\crimson.jar;D:\
projects\integration\lib\jaxp.jar;D:\projects\integration\lib\axis.jar;D:\pr
ojects\integration\lib\commons-logging.jar;D:\projects\integration\lib\jaxrp
c.jar;D:\projects\integration\lib\log4j-1.2.4.jar;D:\projects\integration\li
b\saaj.jar;D:\projects\integration\lib\tt-bytecode.jar;D:\projects\integrati
on\lib\wsdl4j.jar;D:\projects\integration\lib\compatibility.jar;D:\projects\
integration\lib\databean.jar;D:\projects\integration\lib\custom.jar;....othe
r stuff....;"  blah.TestWS


***************** classloading for the ejb is:

                    :
/opt/httpd/root-dev/apps/em2es/stdlib/a_patch_451_1.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/activation.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/ajp_patch.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/crimson.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/jaxp.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/mail.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/servlet.jar
                    :
/opt/httpd/root-dev/apps/em2es/stdlib/tomcat-3.2.3.a.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/vbejb.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/vbjorb.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/vbsec.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/z_asrt.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/z_jdsserver.jar
                    : /opt/httpd/root-dev/apps/em2es/stdlib/classes12.zip
                    :
/opt/httpd/root-dev/apps/em2es/stdlib/nls_charset12.zip
                    : /opt/java/current/lib/tools.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/axis.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/commons-logging.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/jaxrpc.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/log4j-1.2.4.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/saaj.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/tt-bytecode.jar
                    : /opt/httpd/root-dev/apps/em2es/lib/wsdl4j.jar
                    : /opt/inprise/ias/current/lib

***************** snippet of client code:

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

        QName qnEleadsConnectionDataBean = new QName("urn:EleadsService",
"EleadsConnectionDataBean");
        QName qnLeadBean = new QName("urn:EleadsService", "LeadBean");


        call.registerTypeMapping(EleadsConnectionDataBean.class,
qnEleadsConnectionDataBean,
                new
org.apache.axis.encoding.ser.BeanSerializerFactory(EleadsConnectionDataBean.
class, qnEleadsConnectionDataBean),
                new
org.apache.axis.encoding.ser.BeanDeserializerFactory(EleadsConnectionDataBea
n.class, qnEleadsConnectionDataBean));



        call.registerTypeMapping(LeadBean.class, qnLeadBean,
                new
org.apache.axis.encoding.ser.BeanSerializerFactory(LeadBean.class,
qnLeadBean),
                new
org.apache.axis.encoding.ser.BeanDeserializerFactory(LeadBean.class, qnLeadB
ean));


        LeadBean[] result = null;


        try {
            call.setTargetEndpointAddress(new
java.net.URL("http://localhost/axis/services/EleadsService"));
            call.setOperationName(new QName("EleadsService",
"getLeadsPacket"));
            call.addParameter("eleadsConnectionDataBean",
qnEleadsConnectionDataBean, ParameterMode.IN);


            call.setReturnType(new
QName(org.apache.axis.encoding.XMLType.ATTR_ARRAY_TYPE));

            result = (LeadBean[]) call.invoke(new Object[]{conn});
        } catch (AxisFault fault) {

            System.out.println(fault.getFaultString());
        }

        for (int i = 0; i < result.length; i++) {
            System.out.println(result[i].getName());
        }


***************** relevent server-config.wssd snippet is:

<service name="EleadsService" provider="java:RPC">
  <parameter name="allowedMethods" value="getLeadsPacket"/>
  <parameter name="className" value="blah.EleadsService"/>
  <beanMapping languageSpecificType="blah.EleadsConnectionDataBean"
qname="ns1:EleadsConnectionDataBean" xmlns:ns1="urn:EleadsService"/>
  <beanMapping languageSpecificType="java:blah.LeadBean"
qname="ns3:LeadBean" xmlns:ns3="urn:EleadsService"/>
 </service>


-----Original Message-----
From: Vaidya, Raghavendra (CORP, GEITC)
[mailto:Raghavendra.Vaidya@geind.ge.com]
Sent: 20 August 2002 11:52
To: axis-user@xml.apache.org
Subject: Axis and JAX-M


Hi,

Is Axis a JAX-M provider???
If I want to access a stateful AXIS web service from a client written using
JAX-M what are the SOAP header entries I have to make???(equivilant to
call.setSession(true))???

Thanks in anticipation

Vaidya


"THIS E-MAIL MESSAGE ALONG WITH ANY ATTACHMENTS IS INTENDED ONLY FOR THE
ADDRESSEE and may contain confidential and privileged information.
If the reader of this message is not the intended recipient,
you are notified that any dissemination, distribution or copy of this
communication is strictly Prohibited.
If you have received this message by error, please notify us
immediately, return the original mail to the sender and delete the
message from your system."