配置Jetty 9 + Spring 4添加PropertySource文件

时间:2016-06-02 06:28:51

标签: spring jetty jetty-9

如何将外部PropertySource文件添加到jetty 9 jetty.xml?

我使用spring注释和External PropertySource文件

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

当我通过maven运行应用程序时,我使用了属性如propertySource:

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

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

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

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

并将字符串添加到jetty.xml:

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

但这不起作用,码头失败。

2 个答案:

答案 0 :(得分:0)

<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}中,将以下两行添加到start.ini

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

然后你可以正常运行Jetty ......

$ 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

答案 1 :(得分:0)

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

添加到start.ini行--add-to-start = resourcesc

# 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!

我在哪里可以看到日志