好的 这应该可以解决问题:
1-创建一个
/tmp/test.wsdd包含以下内容的wsdd文件(例如):
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler name="test" type="java:axistest.TestHandler" /> <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"> <requestFlow> <handler type="test"/> </requestFlow> </transport></deployment>
2-确保所有轴库都在您的类路径中,然后运行:
java org.apache.axis.utils.Admin client /tmp/test.wsdd
3-步骤2将生成一个client-config.wsdd。将此复制到您的项目,并确保它在运行项目时位于类路径中。
4-所有Web服务调用(通过Http传输)将通过TestHandler1类进行路由
这是我的TestHandler1类(对ur处理程序的稍加修改以访问MIME标头):
package axistest;import javax.xml.namespace.QName;import javax.xml.soap.MimeHeaders;import org.apache.axis.AxisFault;import org.apache.axis.MessageContext;import org.apache.axis.handlers.BasicHandler;public class TestHandler1 extends BasicHandler {@Overridepublic void init() { System.out.println("init called"); super.init(); System.out.println("init called");}@Overridepublic void cleanup() { super.cleanup(); System.out.println("cleanup called");}@Overridepublic void invoke(MessageContext mc) throws AxisFault { System.out.println("invoke called"); System.out.println("=----------------------------------="); MimeHeaders mimeHeaders = mc.getMessage().getMimeHeaders(); mimeHeaders.addHeader("X-Test", "Hello"); System.out.println("Headers : n " + mimeHeaders);}public QName[] getHeaders() { System.out.println("getHeaders"); return new QName[1];}}当我在盒子上运行它时,我看到这些处理程序方法正在被调用:
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.init calledinit calledinvoke called=----------------------------------=Headers : org.apache.axis.message.MimeHeaders@761eec35...



