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 Ken Pelletier <ke...@nika.com> on 2002/12/03 16:25:48 UTC

REPOST: arrayType encoding: xsd:ur-type

An outside client is sending the following array encoding for an  
argument to a method, and Axis is not deserializing it.  ( See error  
return w/stack trace below )

<trackIDs SOAP-ENC:arrayType="xsd:ur-type[1]" xsi:type="SOAP-ENC:Array">
     <item_0 xsi:type="xsd:string">3888197206</item_0>
</trackIDs>

If I change the arrayType from xsd:ur-type to xsd:string and resend the  
message with TCPMonitor, the server deserializes it successfully.

This appears to be true for all array types; the ur-type[] encoding is  
not being deserialized by Axis.

Q)  Is this valid encoding for an arrayType?    I see many examples of  
this, and it does work with Apache SOAP.

Q) What can I do on the server side to get this to deserialize properly?

The client code that generates this array encoding is not under my  
control.


    <faultcode  
xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.userException</ 
faultcode>
    <faultstring>org.xml.sax.SAXException: No deserializer defined for  
array type {http://www.w3.org/2001/XMLSchema}ur-type</faultstring>
    <detail>
     <ns2:stackTrace  
xmlns:ns2="http://xml.apache.org/axis/">org.xml.sax.SAXException: No  
deserializer defined for array type  
{http://www.w3.org/2001/XMLSchema}ur-type
	at  
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeser 
ializer.java:257)
	at  
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl. 
java:394)
	at  
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deseria 
lizationContextImpl.java:906)
	at  
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java: 
200)
	at  
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.j 
ava:684)
	at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207)
	at org.apache.axis.message.RPCElement.getParams(RPCElement.java:265)
	at  
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.ja 
va:190)
	at  
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276 
)
	at  
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j 
ava:71)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
	at  
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316)
	at  
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at  
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j 
ava:335)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica 
tionFilterChain.java:247)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt 
erChain.java:193)
	at com.nika.axis.AxisActionFilter.doFilter(Unknown Source)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica 
tionFilterChain.java:213)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt 
erChain.java:193)
	at  
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv 
e.java:243)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:566)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
72)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at  
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv 
e.java:201)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:566)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
72)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at  
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:234 
4)
	at  
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java 
:164)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:566)
	at  
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa 
lve.java:170)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:564)
	at  
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java 
:170)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:564)
	at  
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462 
)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:564)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
72)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at  
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. 
java:163)
	at  
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.ja 
va:566)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
72)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at  
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.j 
ava:1011)
	at  
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java: 
1106)
	at java.lang.Thread.run(Thread.java:484)
</ns2:stackTrace>