gpt4 book ai didi

tomcat - 在tomcat中传递警告响应头

转载 作者:行者123 更新时间:2023-11-28 22:27:38 26 4
gpt4 key购买 nike

Tomcat 8_32

Windows 7

Java 8_51

RestEasy 3.0.11.Final

GWT 2.7.0(码头 jetty-9.3.5.v20151012)

Servlet 代码对另一个 servlet(同一容器)进行 RestEasy 调用 - 第二个 servlet 在响应时设置“警告”HTTP header 。想在第一个 servlet 中访问它,但在 Tomcat 中运行时,不包括该 header 。

在第一个 servlet 中获取 header 的代码:

对象 header = ((ClientResponseFailure) e).getResponse().getResponseHeaders().get("Warning");

还尝试了:getHeaders()、getStringHeaders() 和 getHeaderString()。

当使用 Jetty 在 IntelliJ (15.0.4) 中以 super 开发模式运行 GWT 时,上面的代码返回一个列表,其中包含一个包含警告字符串的项目。远程调试 Tomcat 时,该调用返回 null。

将此添加到 Web 应用程序 xml,还尝试了 Tomcat conf/web.xml...

<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Warning</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

还尝试了 cors.allowed.headers。

有什么建议吗?

最佳答案

好的,这似乎是 Tomcat 和 Jetty 在提交响应时的区别。如果我将事物排序为... setStatus、setHeader、getWriter - 那么它对两者都有效。

我在设置警告 header 之前有 getWriter,但此时已经提交了响应,因此无法添加 header 。出于某种原因,Jetty 没问题。

关于tomcat - 在tomcat中传递警告响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845335/

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