我正在使用Axis API访问Axis HTTP服务器。 该API的文档可以找到here。使用Axis客户端API时未将HTTP头添加到HTTP请求的处理程序
我正在使用以下代码将处理程序添加到服务器。 service
的类型是java.xml.rpc.Service
HandlerRegistry registry = service.getHandlerRegistry();
QName serviceName = new QName(url, "MyServiceClass");
List<HandlerInfo> handlerChain = new ArrayList<HandlerInfo>();
HandlerInfo handlerInfo = new HandlerInfo(MyHandler.class, null, null);
handlerChain.add(handlerInfo);
registry.setHandlerChain(serviceName, handlerChain);
我知道服务的名称是正确的,因为我得到的后续调用服务对象正确的输出。
不知何故处理程序没有被调用。这是Handler类。 我的意图是在将请求转发到服务器之前,将自定义标头添加到HTTP请求。
import javax.xml.namespace.QName;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
public class MyHandler 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");
}
public QName[] getHeaders() {
System.out.println("getHeaders");
return new QName[1];
}
}
上述代码有什么问题?
是否有任何其他方式使用Apache Axis API修改HTTP头?
这对我有用。用我的client-config.wsdd。谢天谢地这个工具生成正确的文件。 – 2010-10-21 09:13:20
它正在为我工作!谢谢! – jilt3d 2012-04-14 13:32:05