gpt4 book ai didi

java - 将自定义 HTTP header 添加到 Axis 1.4 Web 服务响应

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:25 24 4
gpt4 key购买 nike

我正在尝试将自定义 HTTP header 添加到 Axis 1.4 网络服务器。

我创建了一个扩展 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 方法,但自定义 header 未添加到响应中。

任何建议表示赞赏。

最佳答案

我能够通过执行以下操作在 org.apache.axis.Stub 实例上执行此操作:

private Stub setHeaders(Stub stub, Hashtable<String, String> headers){
stub._setProperty(HTTPConstants.REQUEST_HEADERS, headers);
return stub;
}

请注意,_setProperty() 的值参数必须是 java.util.Hashtable(稍后在使用 Stub 时由 Axis 强制转换)

关于java - 将自定义 HTTP header 添加到 Axis 1.4 Web 服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com