This worked. Although I have to invoke the service the "old-fashioned" way, using Service and Call.invoke() as opposed to using the generated *ServiceLocator and *ServiceSoapBindingStub classes so I can set the register the type mapping. Maybe there is a way set the client side type mapping when using the *Stub, but I haven't figured it out yet. (It is quite possibly right in front of my eyes...)

Thanks,
Linus

Anne Thomas Manes wrote:
Linus,

Try changing your apachesoap:Element type to xsd:anyType, and then
define a mapping for anyType to a DOM Element.

Anne

On 7/14/05, Linus Kamb <[EMAIL PROTECTED]> wrote:

I get the exception dump below when trying to return an array of
org.w3c.dom.Elements.  The XML is fine.  The method returns fine.

Is it an error to try to send or return Element[] in doc/lit wrapped?

I can send the very same XML to the server as doc lit wrapped no problem.  It 
seems to be
a problem with sending (or returning) Element[].


I am pretty sure this worked before I upgraded to 1.2.1, but I haven't tested 
that feature
in a while. (Yeah, I know, bad regression testing...)

I have attached the wsdl.

The server method code looks like:
(I get the same exception when sending Element[] to the server.)

public org.w3c.dom.Element[] getXml(java.lang.String[] fnames)
       throws java.rmi.RemoteException
{
        System.out.println("filenames:" + fnames );
        Element[] elems = null;
        try
        {
            Vector v = new Vector( fnames.length );
            for ( int i = 0; i < fnames.length; i++ )
            {
               File file = new File( fnames[i] );
               System.out.println("file:" + file.getCanonicalPath() +
                               " exists: " + file.exists());
               Document document = getDocument( file );
                v.add( document.getDocumentElement()) ;
            }
            elems = (Element[])v.toArray(new Element[fnames.length]);
        }
        catch ( Exception ex )
        {
            ex.printStackTrace();
        }
        return elems;
    }


No Exceptions are thrown in this code.

The exception is:

   WARN 2005-07-13 16:38:20,622: Exception: - AttachmentsImpl:523
AxisFault
   faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
   faultSubcode:  faultString: java.lang.NullPointerException
   faultActor:
   faultNode:
   faultDetail:
      {http://xml.apache.org/axis/}stackTrace:java.lang.NullPointerException
      at org.apache.axis.utils.ArrayUtil.getArrayComponentPD(ArrayUtil.java:153)
      at 
org.apache.axis.utils.ArrayUtil.internalIsConvertable(ArrayUtil.java:116)
      at org.apache.axis.utils.ArrayUtil.isConvertable(ArrayUtil.java:96)
      at 
org.apache.axis.encoding.TypeMappingImpl.getSerializer(TypeMappingImpl.java:334)
    at
org.apache.axis.encoding.TypeMappingDelegate.getSerializer(TypeMappingDelegate.java:80)
      at
org.apache.axis.encoding.TypeMappingDelegate.getSerializer(TypeMappingDelegate.java:83)
      at
org.apache.axis.encoding.SerializationContext.getSerializer(SerializationContext.java:1507)
     at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1390)
      at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:914)
      at org.apache.axis.message.RPCParam.serialize(RPCParam.java:200)    at
org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
      at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
      at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)    at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:477)
      at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
      at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)     at
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
      at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530)
      at
org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:519)
    at org.apache.axis.Message.getContentType(Message.java:475)
      at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:775)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)    at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)




     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
      at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
      at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
      at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
      at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
      at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
      at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
      at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
      at java.lang.Thread.run(Thread.java:552)

      {http://xml.apache.org/axis/}hostname:moab.local

java.lang.NullPointerException
      at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
      at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:317)
      at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
      at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530)
      at
org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:519)
      at org.apache.axis.Message.getContentType(Message.java:475)
      at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:775)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
      at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
      at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
      at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
      at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
      at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
      at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
      at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
      at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
      at java.lang.Thread.run(Thread.java:552)


Caused by: java.lang.NullPointerException
      at org.apache.axis.utils.ArrayUtil.getArrayComponentPD(ArrayUtil.java:153)
      at 
org.apache.axis.utils.ArrayUtil.internalIsConvertable(ArrayUtil.java:116)
      at org.apache.axis.utils.ArrayUtil.isConvertable(ArrayUtil.java:96)
      at 
org.apache.axis.encoding.TypeMappingImpl.getSerializer(TypeMappingImpl.java:334)
      at
org.apache.axis.encoding.TypeMappingDelegate.getSerializer(TypeMappingDelegate.java:80)
      at
org.apache.axis.encoding.TypeMappingDelegate.getSerializer(TypeMappingDelegate.java:83)
      at
org.apache.axis.encoding.SerializationContext.getSerializer(SerializationContext.java:1507)
      at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1390)
      at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:914)
      at org.apache.axis.message.RPCParam.serialize(RPCParam.java:200)
      at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
      at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
      at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
      at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:477)
      at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
      at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
      ... 32 more

------------------

Thanks,
Linus









Reply via email to