axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "St-Germain, Sylvain" <Sylvain.StGerm...@cognos.com>
Subject RE: [WSDL2Java] No deserializer defined for array type http://[.. .]/: QueryProperty
Date Fri, 08 Mar 2002 17:57:43 GMT
Have a look.  Attached is the wsdl.

Here is the stack on the command line:

Exception in thread "main" org.xml.sax.SAXException: No deserializer defined
for array type http://developer.cognos.com/schemas/cm/1/:queryPropertyStruct
        at org.apache.axis.message.SOAPFaultBuilder.endElement(Unknown
Source)
        at
org.apache.axis.encoding.DeserializationContextImpl.endElement(Unknown
Source)
        at
org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)
        at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator
.java:1550)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XM
LDocumentScanner.java:1204)
        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:393)
        at org.apache.axis.encoding.DeserializationContextImpl.parse(Unknown
Source)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(Unknown Source)
        at org.apache.axis.client.Call.invoke(Unknown Source)
        at org.apache.axis.client.Call.invoke(Unknown Source)
        at org.apache.axis.client.Call.invoke(Unknown Source)
        at org.apache.axis.client.Call.invoke(Unknown Source)
        at
com.cognos.developer.ContentManagerServiceBindingStub.query(ContentManagerSe
rviceBindingStub.java:321)
        at com.cognos.client.ServiceInvoker.main(ServiceInvoker.java:70)



This is the SOAP fault detail.

    <ns2:stackTrace
xmlns:ns2="http://xml.apache.org/axis/">org.xml.sax.SAXException: No
deserializer defined for array type
http://developer.cognos.com/schemas/cm/1/:queryPropertyStruct&#xd;
	at
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(Unknown
Source)&#xd;
	at org.apache.axis.encoding.DeserializerImpl.startElement(Unknown
Source)&#xd;
	at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Unknown
Source)&#xd;
	at org.apache.axis.message.SAX2EventRecorder.replay(Unknown
Source)&#xd;
	at org.apache.axis.message.MessageElement.publishToHandler(Unknown
Source)&#xd;
	at org.apache.axis.message.RPCElement.deserialize(Unknown
Source)&#xd;
	at org.apache.axis.message.RPCElement.getParams(Unknown Source)&#xd;
	at org.apache.axis.providers.java.RPCProvider.processMessage(Unknown
Source)&#xd;
	at org.apache.axis.providers.java.JavaProvider.invoke(Unknown
Source)&#xd;
	at org.apache.axis.strategies.InvocationStrategy.visit(Unknown
Source)&#xd;
	at org.apache.axis.SimpleChain.doVisiting(Unknown Source)&#xd;
	at org.apache.axis.SimpleChain.invoke(Unknown Source)&#xd;
	at org.apache.axis.server.AxisServer.invoke(Unknown Source)&#xd;
	at org.apache.axis.transport.http.AxisServlet.doPost(Unknown
Source)&#xd;
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)&#xd;
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)&#xd;
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)&#xd;
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)&#xd;
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)&
#xd;
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)&#xd;
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:201)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)&
#xd;
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)&#xd;
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)&#
xd;
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)&#xd;
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)&#xd;
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)&#xd;
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)&#x
d;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)&
#xd;
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)&#xd;
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)&#xd;
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)&
#xd;
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)&#xd;
	at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1011)&#xd;
	at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106
)&#xd;
	at java.lang.Thread.run(Thread.java:484)&#xd;
</ns2:stackTrace>















-----Original Message-----
From: Dave Dunkin [mailto:DaveDu@Attachmate.com]
Sent: Friday, March 08, 2002 12:01 PM
To: 'axis-user@xml.apache.org'
Subject: RE: [WSDL2Java] No deserializer defined for array type http://[..
.]/: QueryProperty


I'm sorry I misunderstood the problem. Could you send the stacktrace and the
full wsdl of the error you're getting? This sounds like a bug, not a problem
with the specification of the mapping.
Dave 
-----Original Message----- 
From: St-Germain, Sylvain [mailto:Sylvain.StGermain@cognos.com] 
Sent: Friday, March 08, 2002 6:21 AM 
To: axis-user@xml.apache.org 
Subject: RE: [WSDL2Java] No deserializer defined for array type 
http://[.. .]/: QueryProperty 


Hi, 
To your question, "Why can't your code reference QueryProperty instead of 
queryProperty"?  I say because it is not my code!  This is the Axis server 
that fails to deserialize because it does not find a class to use to 
deserialize queryProperty.  It only has a class named QueryProperty.  
I agree with you that the switch to WSDL2Java shouldn't hurt.  But maybe the

real solution would be to have, as part of the generated code, a class that 
maps the types labels to the class name.  A little like the type mapping 
done in the BindingStub. 
(Correct me if I am wrong) but I suspect that this is the code that allows a

class named "QueryProperty" to be serialized as "queryProperty" the problem 
is that we do not have this mapping done on the server side. 
Sylvain. 




-----Original Message----- 
From: Dave Dunkin [mailto:DaveDu@Attachmate.com] 
Sent: Thursday, March 07, 2002 4:59 PM 
To: 'axis-user@xml.apache.org' 
Subject: RE: [WSDL2Java] No deserializer defined for array type http://[.. 
.]/: QueryProperty 


I don't understand your problem here. Why can't your code reference 
QueryProperty instead of queryProperty? 
I don't think you'll have much luck getting the JAX-RPC or JAXB (from which 
the XML mapping is taken) specs to change because they are Java specific. 
They are aimed at Java programmers. They do not in any way dictate how your 
WSDL looks. 
However I don't think it's unreasonable to add a switch to WSDL2Java to map 
XML identifiers to Java identifiers as closely as possible, disregarding the

JAX-RPC spec. On the plus side, you would have a more direct mapping, which 
it seems several people want (including myself). On the minus side, you lose

compatibility between JAX-RPC compliant SOAP implementations (are there 
others out there?). I could make the patch -- it should be pretty simple 
(I've already worked on that mapping). Comments from the developers? 
If all else fails, you can manually edit the files WSDL2Java creates to have

things your way. Change the class names to the way you want them and edit 
the SoapBindingStub file to fix the registered type mappings. 
Dave 
-----Original Message----- 
From: St-Germain, Sylvain [mailto:Sylvain.StGermain@cognos.com] 
Sent: Thursday, March 07, 2002 12:51 PM 
To: axis-user@xml.apache.org 
Subject: RE: [WSDL2Java] No deserializer defined for array type 
http://[.. .]/: QueryProperty 



It think that the uppercase for first letter rule is a cosmetic concerns 
that shouldn't be in the JAX-RPC spec.  
First it mainly applies to the Java language which at the time of designing 
a WSDL shouldn't be a concerns. 
However, I do agree with the rules that change the names that would bring up

compilation issues.  This is not the case with the first letter 
capitalization. 
Keeping the WSDL2Java the way it is now prevents my server to deserialize 
all message that were defined to used types with a lowercase first letter. 
And that *is* the real problem.  I think the JAX-RPC is wrong with regards 
to the first letter rule for data types.  
I agree that this problem should be brought to the attention of the JAX-RPS 
spec owners before it is finalized.  
Sylvain. 


-----Original Message----- 
From: Gary Feldman [mailto:gaf@rtr.com] 
Sent: Thursday, March 07, 2002 1:01 PM 
To: axis-user@xml.apache.org 
Subject: RE: [WSDL2Java] No deserializer defined for array type 
http://[...]/: QueryProperty 


>From: Dave Dunkin [mailto:DaveDu@Attachmate.com] 
>WSDL2Java complies to the JAX-RPC specification for mapping XML identifiers

to Java identifiers. >That specifies that class should start with a capital 
letter. 
If I'm reading the spec correctly, this would appear to be an 
inconsistency in it. 
The appendix Mapping of XML Names, on pages 138-9, indicates that the 
first character should be converted to upper case, but it then states 
(erroneously?) that the mapping does not change an XML name that is 
already a legal Java class identifier.  Or am I misreading this? 
Also, in section 4.2.3, it uses curiously inconsistent language to 
describe the mapping of the class names and the property names.  It 
could be taken as saying that the class name mappings (unlike the 
property names) must be the same as the XML names, and should not 
use the mapping from the Appendix. 
I can't help but wonder if these problems should be brought to the 
attention of the spec owners before it is finalized.  Personally, 
I think that the requirement that class names conform to Java naming 
conventions should be subordinate to the requirement that the class 
names be as consistent as possible with the names in the WSDL file, 
and that the mapping from WSDL to Java must not create collisions. 
Gary 
==================================================================== 
                  Ready-to-Run Software, Inc. 
              The Industry's Leading Provider of 
              Cross-Platform and Porting Services 
                 ***************************** 
email: gaf@rtr.com                 Gary Feldman 
fax  : 1-978-692-5401              Ready-to-Run Software, Inc. 
voice: 1-978-251-5431              11 School Street 
www  : http://www.rtr.com          North Chelmsford, MA 01863 
                                                     USA 




This message may contain privileged and/or confidential information.  If you

have received this e-mail in error or are not the intended recipient, you 
may not use, copy, disseminate or distribute it; do not open any 
attachments, delete it immediately from your system and notify the sender 
promptly by e-mail that you have done so.  Thank you. 
This message may contain privileged and/or confidential information.  If you

have received this e-mail in error or are not the intended recipient, you 
may not use, copy, disseminate or distribute it; do not open any 
attachments, delete it immediately from your system and notify the sender 
promptly by e-mail that you have done so.  Thank you. 

This message may contain privileged and/or confidential information.  If you
have received this e-mail in error or are not the intended recipient, you
may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so.  Thank you.
  


Mime
View raw message