Ока.Это должно сработать:
1 - Создайте файл wsdd (скажем, /tmp/test.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 - ВСЕ вызовы веб-службы (через транспорт 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 {
@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
.
.
.