Hi everyone,
I'm getting the following error when I try to use the new Axis' beta 3
release, encoding to send dom.Element as parameter to a service.
I've did the following thing and I still get No Deserializer found.

No Deserializer found to deserialize a
'http://schemas.xmlsoap.org/soap/envelope/:Parameter' using encoding style
'http://xml.apache.org/xml-soap'.
        at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:135)
        at
org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:904)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1528)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1779)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507)
        at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
        at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
        at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.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
com.putnaminv.common.paas.profile.RpcrouterSoapBindingStub.retriveProfile(RpcrouterSoapBindingStub.java:150)

To set up the call I use the wsdl2Java generate Stub here is a piece of it:

org.apache.axis.client.Call call = createCall();
call.setEncodingStyle(org.apache.axis.Constants.NS_URI_XMLSOAP);
        javax.xml.namespace.QName p0QName = new javax.xml.namespace.QName
("", "sessionCookie");
        call.addParameter(p0QName, new javax.xml.namespace.QName("
http://www.w3.org/2001/XMLSchema";, "string"), java.lang.String.class,
javax.xml.rpc.ParameterMode.IN);
        javax.xml.namespace.QName p1QName = new javax.xml.namespace.QName
("", "profileParameters");
        call.addParameter(p1QName, new javax.xml.namespace.QName("
http://xml.apache.org/xml-soap";, "Element"), org.w3c.dom.Element.class,
javax.xml.rpc.ParameterMode.IN);
        call.setReturnType(new javax.xml.namespace.QName("
http://xml.apache.org/xml-soap";, "Element"));
        call.setUseSOAPAction(true);
        call.setSOAPActionURI("");
        call.setOperationStyle("rpc");
        call.setOperationName(new javax.xml.namespace.QName
("urn:ProfileManager", "retriveProfile"));

        Object resp = call.invoke(new Object[] {sessionCookie,
profileParameters});


I would really appreciate if you can help with this.
Thanks
Boris Paskalev



Boris -

"http://xml.apache.org/xml-soap":"Element"; is the
QName for org.w3c.dom.Element when using Apache Axis


------
Source Code References:

Org/apache/axis/Constants.java

public static final String NS_URI_XMLSOAP =
"http://xml.apache.org/xml-soap";;

public static final QName SOAP_ELEMENT = new QName(NS_URI_XMLSOAP,
"Element");


Org/apache/axis/encoding/DefaultTypeMappingImpl.java

        // Use the Element Serializeration for elements
        myRegister(Constants.SOAP_ELEMENT,   org.w3c.dom.Element.class,
                   new ElementSerializerFactory(),
                   new ElementDeserializerFactory(), false);
        myRegister(Constants.SOAP_VECTOR,    java.util.Vector.class,
                   new VectorSerializerFactory(java.util.Vector.class,
                                               Constants.SOAP_VECTOR),
                   new VectorDeserializerFactory(java.util.Vector.class,
                                                 Constants.SOAP_VECTOR),
                   false);



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 17, 2002 8:57 AM
To: [EMAIL PROTECTED]
Subject: NS_URI_LITERAL_XML in AXIS

Hi I guess this is the right list to ask my question.
I have  a client that receives a dom.Element as a string (this did not
required any serializes or tricks) using pure SOAP 2.2.
But then I tried to do the same call to the service using AXIS and I was
left with the problem that AXIS does not have the
Constants.NS_URI_LITERAL_XML
encoding, which allows me to send dom.Elements over SOAP (the Element is
send as  arguments to the service). So I received the error that there
is
no serilizer.

Did anyone knows what is an equivalent encoding of NS_URI_LITERAL_XML in
AXIS

Thanks Boris





Reply via email to