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 > >> > >> > >> > >> > >> > >> > >> > > > > >