Jetty spring 配置文件以编程方式

Luk*_*asz 5 spring jetty profiles

我正在寻找一种以编程方式在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();
Run Code Online (Sandbox Code Playgroud)

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

Nux*_*Nux 0

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

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

<context-param>
   <param-name>spring.profiles.default</param-name>
   <param-value>prod</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

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

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