java - 使 Struts2 redirectAction 使用相对路径而不是绝对路径

标签 java struts2 nginx

我有一个在 nginx 后面运行的 struts2 web 应用程序模块。该应用程序在专用网络中运行,但我们的客户端请求通过互联网访问,因此为它打开了一个端口。

我的问题如下。我执行了一些操作,然后使用 redirectAction 转发到另一个标准答案操作。这是通过这种方式完成的,以便在 json 中编写标准答案的单个操作。不幸的是,重定向操作的响应 header 中的位置已清除端口 - 我猜 nginx 会这样做 - 因此重定向未命中,因为它缺少端口。

我的 nginx 管理员说他不能触及特定模块的 nginx 重定向,要么全有要么全无。

有谁知道是否有办法让 struts redirectAction 在相对路径而不是绝对路径上工作?我唯一的猜测,也是我将要尝试的,是创建我的 redirectAction 实现的自定义变体 - org.apache.struts2.dispatcher.ServletActionRedirectResult -,但我想知道是否有更简单的方法来实现相同的结果。

最佳答案

不是为 tomcat 打开特定端口,而是应该将对特定域的请求在内部转发到运行在其他端口的 tomcat。

我们的服务器针对 tomcat 的 apache infront 进行了此配置,为此我们使用了 mod_jkmod_proxy

谷歌搜索这些主题将进一步描述如何实现这一目标。因为它们本身就是相当大的主题。

可能的解决方案:

Nginx reverse proxy for tomcat

NGINX with Tomcat configuration

关于java - 使 Struts2 redirectAction 使用相对路径而不是绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566511/

相关文章:

linux - nginx force SSL no-www 重定向问题

docker - sockjs-node路径被webpack-dev-server baseUrl覆盖

java - 如何将 SwingWorker 与 Swing 同步?

java - 如何在浏览器中显示Word文档文件而不是下载Spring MVC?

java - OGNL类型转换器演示

java - ActionMappingParametersInteceptor - 为什么我需要它

NginX GeoIP 模块配置 - Conf 第一行不允许 load_module

java - 编码(并重定向)到在 Java 中具有特殊字符的 URL

java - resteasy-cdi 中断部署到 Tomcat 7

java - 命名空间 '/' 没有在 JUNIT 中为范围 'request' 注册范围