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