我正在尝试将自定义 HTTP 标头添加到 Axis 1.4 Web 服务器。
我创建了一个扩展 BasicHandler 的处理程序:
public class HttpHeaderHandler extends BasicHandler {
.
.
.
@Override
public void invoke(org.apache.axis.MessageContext arg0) throws AxisFault {
LOG.trace("invoke called");
Hashtable ht = (Hashtable)ctx.getProperty(HTTPConstants.RESPONSE_HEADERS);
if(ht == null) {
ht = new Hashtable();
}
ht.put("custom-header", "Hello");
ctx.setProperty(HTTPConstants.RESPONSE_HEADERS, ht);
}
.
.
.
}
我已将以下内容添加到 server-config.wsdd:
.
.
.
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
</requestFlow>
<responseFlow>
<handler type="java:com.my.package.HttpHeaderHandler" />
</responseFlow>
</transport>
.
.
.
我可以看到调用方法正在调用,因为日志记录出现在日志文件中,但自定义标头未添加到响应中。
任何建议表示赞赏。