【问题标题】:Jetty spring profile programmatically码头弹簧轮廓以编程方式
【发布时间】:2014-08-01 12:59:48
【问题描述】:

我正在寻找一种以编程方式在 jetty 中设置 spring 配置文件的方法,以便服务器上的 war 文件使用给定配置文件的应用程序,这是我的代码:

final WebAppContext context = new WebAppContext();
context.setLogUrlOnStart(true);
context.setWar("target/deployables/myapp-rest/myapp-rest.war");
context.setContextPath("/" + TEST_APP_CONTEXT);
context.setParentLoaderPriority(true);
server.setHandler(context);
server.start();

我尝试了几件事,但似乎都不起作用...我需要通过 -Dspring.profiles.active=myProfile

【问题讨论】:

    标签: spring jetty profiles


    【解决方案1】:

    这是使用 Jetty 9.3 测试的,但 webdefault.xml 似乎也可用于较低版本(但它的位置可能不同)。

    转到$JETTY_HOME/etc 并打开webdefault.xml。在文件中搜索context-param。在下面的某处添加此代码:

    <context-param>
       <param-name>spring.profiles.default</param-name>
       <param-value>prod</param-value>
    </context-param>
    

    如果您的web.xml(在your-app.war 文件中)不包含此context-param,这将起作用。

    否则你也可以使用override-web.xml (docs) 但你需要在jetty-web.xml 中配置它并且jetty-web.xml 必须捆绑在战争中......所以YMMV,但我不想改变我的战争,webdefault.xml 对我来说是一个更简单的解决方案。

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      相关资源
      最近更新 更多