I've been trying for quite a while to get messaging with attachments working with axis release 1.0. I seem to get so close only to be thwarted in the end. My current configuration (based on much research in the various pieces of axis documentation, samples, mailing list archives, and sourc code) is as follows:
- using axis 1.0 release - I have all of the axis jar's, servlet.jar, mail.jar and activation.jar on my classpath - my service side method (in a class com.chiinc.soaptest.server.SOAPTestServer) has the following signature: public SOAPEnvelope EchoAttachment (SOAPEnvelope envelope) note that I've tried the following method signatures as well: public void EchoAttachment (SOAPEnvelope req, SOAPEnvelope resp) and public void EchoAttachment (MessageContext mc) - my .wsdd looks as follows: <deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"> <service name="SOAPTestServer" provider="java:MSG"> <parameter name="className" value="com.chiinc.soaptest.server.SOAPTestServer"/> <parameter name="allowedMethods" value="EchoAttachment"/> </service> </deployment> note that I've tried removing the provider attribute and substituting style="message" but still get the same result I'm currently getting an error when viewing the wsdl of my deployed service from the axis servlet as follows: Fault - org.apache.axis.InternalException: java.lang.Exception: Method 'EchoAttachment' does not match any of the valid signatures for message-style service methods AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultString: org.apache.axis.InternalException: java.lang.Exception: Method 'EchoAttachment' does not match any of the valid signatures for message-style service methods faultActor: null faultDetail: stackTrace: org.apache.axis.InternalException: java.lang.Exception: Method 'EchoAttachment' does not match any of the valid signatures for message-style service methods at org.apache.axis.description.ServiceDesc.checkMessageMethod(ServiceDesc.java: 707) at org.apache.axis.description.ServiceDesc.createOperationForMethod(ServiceDesc .java:1039) at org.apache.axis.description.ServiceDesc.createOperationsForName(ServiceDesc. java:967) at org.apache.axis.description.ServiceDesc.getSyncedOperationsForName(ServiceDe sc.java:940) at org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospectionRecurs ive(ServiceDesc.java:801) at org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi ceDesc.java:768) at org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi ceDesc.java:718) at org.apache.axis.description.ServiceDesc.getOperations(ServiceDesc.java:355) at org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:695) at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:333) at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:235) at org.apache.axis.providers.java.JavaProvider.generateWSDL(JavaProvider.java:4 18) at org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:72) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:143) at org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:355) at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:490) at org.apache.axis.transport.http.AxisServlet.processWsdlRequest(AxisServlet.ja va:428) at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:280) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java: 335) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2397) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:533) at java.lang.Thread.run(Thread.java:536) It's obvious that it's unhappy with my method signature. However it seems to me based on what I've read that what I'm doing is correct. Can anyone offer some insight into what the problem is?
