配置码头 9 + 弹簧 4 添加属性源文件



如何将外部属性源文件添加到码头 9 码头.xml ?

我使用弹簧注释和外部属性源文件

  @PropertySources({
      @PropertySource(name = "arm", value = "${propertySource}")
})
public class SecurityConfig extends WebSecurityConfigurerAdapter {

当我通过 maven 运行应用程序时,我使用像属性源这样的参数:

mvn -DpropertySource=file:/etc/jetty/arm.properties jetty:stop jetty:run

它的工作完美码头从/etc/jetty/arm.properties config params 开始。

如何添加 -DpropertySource=/etc/jetty/arm.properties 像参数一样启动码头 ? 锄头到可配置码头.xml ?

我阅读文档http://www.eclipse.org/jetty/documentation/current/jetty-xml-usage.html

并将字符串添加到码头.xml :

<SystemProperty name="propertySource" default="file:/etc/jetty/arm.properties"/>

但这行不通,码头失败了。

<SystemProperty> 的用途是计算命名系统属性,并在 XML 文件中将其用作您尝试配置的任何内容的值。

有两种

方法可以使用码头分布来实现此目的。

1:只需使用 Java JVM 命令行添加属性

$ cd /path/to/mybase
$ java -DpropertySource=file:/etc/jetty/arm.properties -jar /path/to/jetty-dist/start.jar

2:允许 ${jetty.base} 管理 Java JVM 属性

在您的${jetty.base}将以下 2 行添加到您的start.ini

--exec
-DpropertySource=file:/etc/jetty/arm.properties

然后你可以正常运行码头...

$ cd /path/to/mybase
$ java -jar /path/to/jetty-dist/start.jar

奖励:替代技术

由于这是 Spring,因此您可以改用类加载器资源。

运行此命令以启用资源类路径

$ cd /path/to/mybase
$ java -jar /path/to/jetty-dist/start.jar --add-to-start=resources

然后将属性文件放入新${jetty.base}/resources

最后,改为通过 Spring 类加载器资源引用来引用您的PropertySources

In your ${jetty.base} add the following 2 lines to your start.ini
--exec 
-DpropertySource=file:/etc/jetty/arm.properties 
#service jetty9 start 
[FAIL] Starting Jetty 9 Servlet Engine: jetty9 failed! 

# sudo service jetty9 check
[ ok ] Checking arguments for Jetty:.
. ok 
[ ok ] PIDFILE = /var/run/jetty9.pid.
[....] JAVA_OPTIONS = -Xmx256m -Djava.awt.headless=true -Djava.io.tmpdir=/var/cache/jetty9/data -Djava.library.path=/usr/lib -Djetty.home=/usr/share/jetty9 -Djetty.logs=/var/log/jetty9 -Djetty.state=/var/lib/jetty[ ok ty.state.
[ ok ] JAVA = /usr/lib/jvm/java-8-openjdk-amd64/bin/java.
[ ok ] JETTY_USER = jetty.
[ ok ] ARGUMENTS =.
[ ok ] Jetty 9 Servlet Engine is running with pid 23749.

解决方案 2

添加到开始.ini行 --添加到开始=资源c

# sudo service jetty9 start
[warn] Starting Jetty 9 Servlet Engine: jetty9[....] /var/run/jetty9.pid exists, but jetty was not running. Ignoring /var/run/jetty9.pid ... (warning).
 failed!

我在哪里可以看到日志

最新更新