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 "Michael K. Dean" <MK...@cmsenergy.com> on 2002/06/15 00:48:21 UTC
org.xml.sax.SAXException: Bad types (null -> class java.lang.String)
Axis is not setting a null string. I get the following error:
7066344 [ExecuteThread: '11' for queue: 'default'] ERROR http.AxisServlet
- Exception:
org.xml.sax.SAXException: Bad types (null -> class java.lang.String)
org.xml.sax.SAXException: Bad types (null -> class java.lang.String)
at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:207)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:859)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:637)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:200)
at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:258)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:161)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:285)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:286)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:570)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
It looks like the onStartChild of the RPCHandler call
JavaUtils.isConvertable which
public SOAPHandler onStartChild(String namespace,
String localName,
String prefix,
Attributes attributes,
DeserializationContext context)
throws SAXException
{
if (log.isDebugEnabled()) {
log.debug("Enter: RPCHandler.onStartChild()");
}
.....
if (paramDesc != null) {
// Keep the association so we can use it later
// (see RPCProvider.processMessage())
currentParam.setParamDesc(paramDesc);
if (type == null) {
type = paramDesc.getTypeQName();
} else if (paramDesc.getJavaType() != null) {
// If we have an xsi:type, make sure it makes sense
// with the current paramDesc type
Class xsiClass =
context.getTypeMapping
().getClassForQName(type);
if (!JavaUtils.isConvertable(xsiClass,
paramDesc.getJavaType()))
{
throw new SAXException("Bad types (" +
xsiClass + " -> " + paramDesc.getJavaType() +
")"); // FIXME!
}
}
}
}
Which call JavaUtils.isHolderClass(Class) to see if the String is a holder
class which it is not so iJavaUtils reports that it can not convert the
null to a string which is true but you should be able to set any object to
null.
Is this a bug or am I doing something wrong. This seemed to work with Beta
1.
Thanks
Michael