Parul,

Are you trying to embed an XML document string in your request. If yes, did you check if your DOM tree has been formed correctly. I mean try validating it against the schema and see if it is well-formed.

HTH,
Vivek


From: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: No serializer found for class
Date: Fri, 20 Feb 2004 13:55:43 -0800

Tony,

If I do modify the wsdd, I will have to redeploy the service again
correct? I'm not sure if I have access to do that (since its another team
maintaning it)

Also, The problem that I am facing is with the de-serializing part of it.
Please correct me if I am wrong, but the call.addParameter() is used for
the outgoing request, which in this case seems to work since I do get a
valid response, I can see the response in TCPMON.
I've seen several examples that used this method of adding parameters to
the call object. I tried changing it, to use the QName as the second param
and it didn't like it.

Another question, below is my response, so do I need to register a
serializer for <SOAP-ENV> tag?.
I have registered deserializers for outMsg, headers, OC315SearchRequest,
answer, OC315SearchView, userError and systemErrors. Can you think of
anything else that I need to register. Also I think there might be an
issues with the QName, can you help me figure out, which QName should I
register these with.

I'm really sorry for bothering you, but I don't have too many people
around me who can help :-(

HTTP/1.0 200 Ok
Content-Type: text/xml
Connection: close
<SOAP-ENV:Envelope
         xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
         xmlns:xsd="http://www.w3.org/2001/XMLSchema";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
        <SOAP-ENV:Body>
                <esi:executeRequestOut
xmlns:esi="urn:ExpoServiceInterface">
                        <outMsg>
                                <headers>
 <requestFinishedTime></requestFinishedTime>
 <requestReceivedTime>2004-02-19-14.47.18.000000</requestReceivedTime>
                                        <sessionID></sessionID>
 <processID>chq-expovatest1_9347110</processID>
                                        <requests xsi:type="Array"
arrayType="SearchRequest[1]">
                                                <SearchRequest>
 <bookingNumber></bookingNumber>
 <consolNumber>HKG8154229</consolNumber>
 <containerNumber></containerNumber>
 <masterNumber></masterNumber>
                                                </SearchRequest>
                                        </requests>
                                        <columnHeadings xsi:type="Array"
arrayType="UndefinedObject[]">
                                        </columnHeadings>
                                </headers>
                                <answer>
                                        <isSuccessful>true</isSuccessful>
                                        <resultsSize>3</resultsSize>
                                        <results xsi:type="Array"
arrayType="OC315SearchView[2]">
                                                <OC315SearchView>
 <containerCtlRef>C910487788</containerCtlRef>
 <containerNo>APLS2939750</containerNo>
 <moveType>CY/CY</moveType>
 <containerSeal>2680993   </containerSeal>
 <containerSize>20</containerSize>
 <bookingNum>DUI031281394-2</bookingNum>
                                                </OC315SearchView>
                                                <OC315SearchView>
 <containerCtlRef>C910487800</containerCtlRef>
 <containerNo>GUTU4187106</containerNo>
 <moveType>CY/CY</moveType>
 <containerSeal>2681968   </containerSeal>
 <containerSize>20</containerSize>
 <bookingNum>DUI031281904-4</bookingNum>
                                                </OC315SearchView>
                                        </results>
                                        <userErrorsSize>0</userErrorsSize>
                                        <userErrors></userErrors>
 <systemErrorsSize>0</systemErrorsSize>
                                        <systemErrors></systemErrors>
                                </answer>
                        </outMsg>
                </esi:executeRequestOut>
        </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Thanks,
Parul





Tony Blair <[EMAIL PROTECTED]>
02/20/2004 01:20 PM
Please respond to axis-user


To: [EMAIL PROTECTED] cc: (bcc: Parul Joshi/IS/Expeditors) Subject: Re: No serializer found for class


Parul,


I've notice two things:

1-Your WSDD does not have any information regarding the encoding, ser and
deser. Perhaps you may have to add them manually yourself. The absence of
these information results in exceptions such as Seriliazer or Desr not
found.

2-In the client code the call.addParameter() requires an Object of type
QName according as the 2nd parameter according to the API docs, yet you
are passing a XDS type.

Other than these two I don't see anything obvious that might cause the
exception.

Regards,
Tony.

[EMAIL PROTECTED] wrote:

The service is implemented in SmallTalk, and basically has a single main
method "executeRequest" which takes in a generic Object, and based on the
type of Object it returns appropriate "View" objects.
The wsdd is below, its very different from what I've see, which is why I
can't understand a lot of it :-(

I've attached a soft copy, but also cut and paste the relevant sections..

<?xml version="1.0" ?>
- <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) -->
- <!-- Generated by VisualAge Smalltalk Web Services on 6/10/2003 at 1:08:16 PM
-->
- <vastwsd:deployment targetNamespace="urn:ExpoServiceInterface"
xmlns:vast="Smalltalk" xmlns:vastwsd="urn:VASTWebServiceDeployment600"
xmlns:esi="urn:ExpoServiceInterface" xmlns:n="urn:VASTWebServiceDeployment600"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="urn:VASTWebServiceDeployment600">
- <services>
<service name="ExpoServiceInterface" namespace="http://www.ExpoServiceInterface.com/ExpoServiceInterface";>
<documentation xmlns:zmls="http://www.w3.org/2001/XMLSchema"; />
<serviceInterfaceClass>SstWSService</serviceInterfaceClass>
- <provider type="SmalltalkProvider">
<vast:provider className="ExpoServiceInterface" creationMethod="current" />
- <operations>
<operation name="about" qName="esi:about" />
<operation name="status" qName="esi:status" />
<operation name="executeRequest:" qName="esi:executeRequest" />
<operation name="argsForRequestNamed:" qName="esi:argsForRequestNamed" />
</operations>
</provider>
<extensions />
</service>
</services>


This is the exectueRequest() from my client code

private Object runExecuteRequest(Object request) throws RemoteException, AxisFault, SOAPException
{
service = new Service();
call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperation(method2);
call.setOperationName(new QName("urn:ExpoServiceInterface", "executeRequest"));


setupQNames();
call.addParameter( "outMsg", XMLType.XSD_ANYTYPE, ParameterMode.IN );
call.setReturnClass(EIResponse.class);
EIResponse obj = (EIResponse) call.invoke(new Object[] {request});
return obj;
}


private void setupQNames()
{
java.lang.Class beanSF = BeanSerializerFactory.class;
java.lang.Class beanDF = BeanDeserializerFactory.class;
String nameSpace = "";//http://www.ExpoServiceInterface.com/ExpoServiceInterface-Interface";;


QName qName = new javax.xml.namespace.QName("OC315SearchRequest", "OC315SearchRequest");
call.registerTypeMapping(OC315SearchRequest.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "OC315SearchRequest");
call.registerTypeMapping(OC315SearchRequest.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "OC315SearchView");
call.registerTypeMapping(OC315SearchView.class, qName, beanSF, beanDF);


        qName = new javax.xml.namespace.QName("EIResponse", "EIResponse");
        call.registerTypeMapping(EIResponse.class, qName, beanSF, beanDF);

        qName = new javax.xml.namespace.QName(nameSpace, "outMsg");
        call.registerTypeMapping(EIResponse.class, qName, beanSF, beanDF);

qName = new javax.xml.namespace.QName(nameSpace, "EIAbstractHeader");
call.registerTypeMapping(EIAbstractHeader.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "userErrors");
call.registerTypeMapping(UserErrorResult.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "systemErrors");
call.registerTypeMapping(SystemErrorResult.class, qName, beanSF, beanDF);


        qName = new javax.xml.namespace.QName(nameSpace, "results");
        call.registerTypeMapping(Result.class, qName, beanSF, beanDF);

qName = new javax.xml.namespace.QName(nameSpace, "userErrors");
call.registerTypeMapping(UserErrorResult.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "headers");
call.registerTypeMapping(EIResponseHeader.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "errorResult");
call.registerTypeMapping(ErrorResult.class, qName, beanSF, beanDF);


qName = new javax.xml.namespace.QName(nameSpace, "answer");
call.registerTypeMapping(Answer.class, qName, beanSF, beanDF);
qName = new javax.xml.namespace.QName(nameSpace, "systemErrors");
call.registerTypeMapping(SystemErrorResult.class, qName, beanSF, beanDF);
}


Thanks a lot for trying to help...
Parul



Tony Blair <[EMAIL PROTECTED]>
02/20/2004 10:43 AM
Please respond to axis-user

        To:        [EMAIL PROTECTED]
        cc:        (bcc: Parul Joshi/IS/Expeditors)
        Subject:        Re: No serializer found for class



Parul,

Can you post your Client code and the your WSDD (NOT the WSDL) here?

Regards,
Tony.

[EMAIL PROTECTED] wrote:

Hi there,
I am extremely new to Axis and SOAP, and am trying to solve this for the
past 2 days, without and luck.

I am running into a problem when I am trying to deserialize incoming data.
I get the following exception.
SimpleDeserializer encountered a child element, which is NOT expected, in
something it was trying to deserialize.
       at
org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.j

I read thru' many of the posts, and I have registered all my sub-classes
with BeanSerializers and De-serializer. I still get this exception.
My return type is a complex type which has 2 other complex types in it.

I have registered outMsg, header, answer, SearchView, SearchRequest,
userErrors, systemErrors.  Basically I have registered all the complex
types that I expect in the return object.
I am registering it like this. nameSpace is ="", since there isn't one
defined in the wdss.
       qName = new javax.xml.namespace.QName(nameSpace, "outMsg");
       call.registerTypeMapping(EIResponse.class, qName, beanSF, beanDF);

I don't know if I'm registering it incorrect, since I'm not sure what I
should put in the namespace, I tried several different things but none
work.

Any Help will be greatly appreciated.


Thanks, Parul


_________________________________________________________________
Get fast, reliable access with MSN 9 Dial-up. Click here for Special Offer! http://click.atdmt.com/AVE/go/onm00200361ave/direct/01/




Reply via email to