Weblogic 上的 Spring Boot 应用程序部署问题

问题描述 投票:0回答:1

我有一个使用 Thymeleaf 作为模板引擎的 Spring boot 应用程序,我添加了一个默认控制器,当在服务器上部署时应该重定向到主页,控制器代码片段如下:

@Controller
public class HomeController
{
    @RequestMapping("/")
    public String index()
    {
       return "index";
    }
}

索引由 ViewResolver 解析到匹配的网页。

在独立的 Tomcat 实例上部署生成的战争“app.war”时,应用程序工作正常,我被重定向到主页(localhost:XXX/context_path/index),“localhost:XXX /”也重定向到正确的页面。

在 Weblogic 上部署时,尝试访问 URL 时出现错误: “localhost:XXX/context_path”,当我手动添加“/”时它有效。

我发现这个教程 https://o7planning.org/en/11245/deploying-spring-mvc-on-oracle-weblogic-server 建议添加 / 到 weblogic.xml 文件,效果很好。

但是,当强制context-root为“/”时,部署在weblogic上的应用程序的主页URL不再相同 (“localhost:XXX/index”而不是“localhost:XXX/war_name/index”)。

综上所述,Tomcat 自动将“/”添加到上下文根,而无需配置上下文根。

如何在不在 weblogic.xml 上配置上下文根的情况下使用 weblogic 获得相同的行为?

我正在使用 weblogic Server 12c.

java spring spring-boot weblogic thymeleaf
1个回答
0
投票

我仍然遇到同样的问题,解决方案是对 Spring 服务的静态文件(默认索引文件)执行简单的破解。

<script type="text/javascript">
  if (window.location.pathname.slice(-1) !== '/') {
    window.location.assign(window.location.pathname + '/');
  }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.