Okie.这应该做的伎俩:
1 – 创建一个包含以下内容的wsdd文件(例如/tmp/test.wsdd):
2 – 确保所有轴库都在您的类路径中,然后运行:
java org.apache.axis.utils.Admin client /tmp/test.wsdd
3 – 步骤2将生成client-config.wsdd.将其复制到项目中,并确保在项目运行时它将位于类路径中.
4 – 所有Web服务调用(通过Http传输)将通过TestHandler1类进行路由
这是我的TestHandler1类(稍微修改了访问MIME头的ur处理程序):
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 {
@Override
public void init() {
System.out.println("init called");
super.init();
System.out.println("init called");
}
@Override
public void cleanup() {
super.cleanup();
System.out.println("cleanup called");
}
@Override
public 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 called
init called
invoke called
=----------------------------------=
Headers :
org.apache.axis.message.MimeHeaders@761eec35
.
.
.