使用"server.context-parameters.*"定义的属性在Java EE服务器上不起作用

jcg*_*cia 3 java jboss spring tomcat spring-boot

我们已经生成了一个基本的Spring Boot应用程序来测试一些功能.

准备将它部署在嵌入式服务器和Java EE服务器(Tomcat 7和JBoss EAP 6.2)上,而不应用任何更改.

server.context-parameters.*application.properties文件中包含了属性.

如果我使用java -jar或在嵌入式服务器上部署应用程序mvn spring-boot:run,它可以正常工作.但是,如果我在Tomcat 7或JBoss EAP 6.2上部署相同的应用程序,我无法正确加载context-params.

  • 在不使用web.xml文件的情况下,在Java EE容器上部署的Spring Boot应用程序上定义上下文参数的正确方法是什么?

您可以在此处查看与此Spring Boot问题相关的所有调试信息

jcg*_*cia 6

最后,感谢StéphaneNic​​oll,我找到了以下解决方案

server.context-parameters.*仅适用于嵌入式服务器,因此在Java EE服务器上配置上下文参数是必要的,包括如下@Bean类型ServletContextInitializer:

@Bean
public ServletContextInitializer contextInitializer() {
    return new ServletContextInitializer() {

        @Override
        public void onStartup(ServletContext servletContext)
                throws ServletException {
                servletContext.setInitParameter("dummy.type","on-context-parameters");
        }
    };
}
Run Code Online (Sandbox Code Playgroud)