You specify the client-side type mapping using a client.config file.

Anne

On 7/19/05, Linus Kamb <[EMAIL PROTECTED]> wrote:
> 
> 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