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

Spring Boot Application Deployment issue on Weblogic

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

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

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

在独立 Tomcat 实例上部署生成的 war“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 文件,效果很好。

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

总而言之,Tomcat 自动将“/”添加到上下文根,而无需配置上下文根。

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

我正在使用 weblogic Server 12c。

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

<script type="text/javascript">
  if (window.location.pathname.slice(-1) !== '/') {
    window.location.assign(window.location.pathname + '/');
  }
</script>