是否可以使用javaagent运行Play Framework 2.0服务器?

时间:2012-06-13 10:03:05

标签: playframework playframework-2.0 javaagents

我希望能够使用javaagent运行Play Framework 2.0服务器。

网络上的一些资源(请参阅herehere)表明,只需将-javaagent:/path/to/agent.jar附加到play run即可完成此操作,但似乎无效为了我。

任何线索?

4 个答案:

答案 0 :(得分:2)

我在Heroku中使用它,工作正常如下(在我的Procfile中):

  play ${JAVA_OPTS} ${MYCONFIG} -javaagent:/newrelic/newrelic.jar run

我的 newrelic 文件夹位于root用户,与 app

相同

答案 1 :(得分:2)

SBT的java命令行在“build.bat批处理文件(Win)或”build“shell脚本(U * X)中定义,位于%PLAY2_HOME%/framework文件夹< / p>

您可以通过调整那里定义的参数来添加一个javagent或调整SBT / Play2使用的其他JVM设置。这可能是Heroku的聪明人已经做过的事情。

答案 2 :(得分:2)

在没有修改脚本的情况下,没有干净的方法将-javaagent参数传递给带有play 2.0.1-2.0.4的java命令调用。

我能够使用以下技术让javaagent工作:

# Modify the play/framework/build script to include an extra environment variable
sed -i 's/^java\( \${PLAY_OPTS}\)\?/java ${PLAY_OPTS}/' ${playPath}/framework/build

然后可以像这样传递-javaagent param:

export PLAY_OPTS='-javaagent:/lib/newrelic/newrelic.jar'

${playPath}/play -Dconfig.file=conf/prod.conf -Dlogger.file=conf/prod-logger.xml start


<强>更新

一个不幸的旁注 - 我刚刚从New-Relic的支持中发现New-Relic现在肯定不支持play-framework 2.x(2012-10-04)。


答案 3 :(得分:1)

示例不起作用的原因是因为示例适用于Play 1.x,并且您正在使用play 2.x. Play 1.x使用Java(通过python脚本),其中Play 2使用SBT。

您需要配置SBT。我不是SBT专家,但是从Googling开始,我只想运行

play -javaagent:/path/to/agent.jar

然后在控制台启动之后跟run应该执行操作,但如果这不起作用,那么就是找到如何将javaagent语法添加到SBT控制台的情况。< / p>