カスタム 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>
.
.
.
ログがログ ファイルに表示されているため、invoke メソッドが呼び出されていることがわかりますが、カスタム ヘッダーは応答に追加されていません。
任意の提案をいただければ幸いです。