肥皂响应标题中的日期

时间:2017-08-28 07:14:05

标签: java web-services cxf

我正在编写基于CXF的Web服务。我需要将响应标头中的日期作为本地服务器时间传递,但这将作为GMT返回,如下面的

所示
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5
Date: Mon, 28 Aug 2017 06:47:51 GMT
Content-Type: text/xml;charset=UTF-8
Content-Length: 436

但是如果我将值Date1设置为标题

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5
Date1: Mon Aug 28 12:38:47 IST 2017
Content-Type: text/xml;charset=UTF-8
Content-Length: 436
Date: Mon, 28 Aug 2017 07:08:47 GMT

我们无法在此处覆盖日期,如果有,可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果要在发送消息之前编辑http标头,则可以创建拦截器,将其添加到传出拦截器并在那里进行。

public class HttpHeaderInterceptor extends AbstractPhaseInterceptor<Message>{

public HttpHeaderInterceptor() {
 super(Phase.POST_LOGICAL);
 }

public void handleMessage(Message message) {
 Map<String, List<String>> headers = new HashMap<String, List<String>>();
 headers.put("xxx", "yyyy");
 message.put(Message.PROTOCOL_HEADERS, headers);
 }

}