Hi, do not know if this helps but, it works on windows 2000, axis 1.2, jdk 1.5.0_01-b08, tomcat 5 - add activation.jar and mail.jar to your classpath I got it from set CLASSPATH=C:\tomcat50-jwsdp\jwsdp-shared\lib\activation.jar;%CLASSPATH% set CLASSPATH=C:\tomcat50-jwsdp\jwsdp-shared\lib\mail.jar;%CLASSPATH%
- run ant compile - run deployit.cmd - test the client C:\axis-1_2\samples\attachments>java samples.attachments.EchoAttachment test.txt Going to compare the files.. Going to compare the files.. Attachment sent and received ok! C:\axis-1_2\samples\attachments> --- On Sat 07/02, Mark Leone < [EMAIL PROTECTED] > wrote: From: Mark Leone [mailto: [EMAIL PROTECTED] To: [email protected] Date: Sat, 02 Jul 2005 01:44:43 -0400 Subject: SOAP Attachments -- Example Doesn't Work I have Axis 1.2 RC3 in Tomcat 5.5.8, and I tried to call the sample <br>attachments service (samples.attachments.EchoAttachmentsService).with <br>the sample client (samples.attachments.EchoAttachment). I deployed the <br>service with the attachdeploy.wsdd in the samples/attachments directory, <br>and it seemed to be successful. The Axis servlet displays the service in <br>the list of deployed services, but when I click on the wsdl link I get <br>the following:<br><br><br> AXIS error<br><br>Sorry, something seems to have gone wrong... here are the details:<br><br>Fault - ; nested exception is: <br> WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'urn:EchoAttachmentsService'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method.: <br><br>AxisFault<br> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException<br> faultSubcode: <br> faultString: WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'urn:EchoAttachmentsService'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method.: <br> faultActor: <br> faultNode: <br> faultDetail: <br><br>I tried to run the client anyway, and I get the following in the Tomcat log<br><br>In echo<br>Received "javax.activation.DataHandler".<br>- java.io.IOException:<br>javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/related; type="text/xml"; start="<4797A406CB66DEBB0324404AE4600781>"; <br> boundary="----=_Part_0_17700115.1120281455852"<br> at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:841)<br> at javax.activation.DataHandler.writeTo(DataHandler.java:295)<br> at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1209)<br> at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1611)<br> at org.apache.axis.attachments.MimeUtils.writeToMultiPartStream(MimeUtils.java:238)<br> at org.apache.axis.attachments.AttachmentsImpl.writeContentToStream(AttachmentsImpl.java:500)<br> at org.apache.axis.Message.writeTo(Message.java:447)<br> at org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:1018)<br> at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:895)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<br> at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)<br> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)<br> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)<br> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)<br> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)<br> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)<br> at java.lang.Thread.run(Unknown Source)<br><br>I'd like to know what's going wrong here, but I'm also trying to figure out how attachments are implemented in this example,<br>because it seems to be not what I expected. When I generated a wsdl file using WSDL2Java from the service class, the wsdl didn't<br>include mime:multipart/related elements in the bindings, as the wsdl spec shows for handling attachmetns. The wsdl just showed<br>a DataHandler object and a w3c.org.DOM.Document object being passed in both directions.<br><br>Then when I looked at the source code I saw that there are three methods: echo() and echoDir() accept and return DataHandler<br>and DataHandler[] objects, respectively, and this is consistent with what's in the typeMapping in the wsdd. But there's also<br>a method attachments() which accepts and returns a org.w3c.DOM.Document object. The implementation shows that the Document<br>has href attributes that point to other MIME parts, which is what I was expecting to see in the wsdl. But the attachments()<br>method isn't called by the client at all, and there is no mention of a MIME structure in the wsdl for this method. Is this <br>method called by the DataHandler objects that are passed via echo() and echoDir()? If not, how does it get called?<br>I know it does, because it threw a "no support for attachments" excpetion when I didn't have mail.jar in the classpath. Can<br>anyone point me to any documentation on how attachments are implemented in Axis?<br><br>-Mark<br><br><br><br><br><br> _______________________________________________
