Вопрос по playframework, playframework-2.0, javaagents – Можно ли запустить сервер Play Framework 2.0 с javaagent?

5

Я хотел бы иметь возможность запускать сервер Play Framework 2.0 с javaagent.

Некоторые ресурсы в Интернете (см.Вот а такжеВот ) предположить, что это можно сделать, просто добавив-javaagent:/path/to/agent.jar вplay run но это, похоже, не работает для меня.

Есть какие-нибудь подсказки?

Ваш Ответ

4   ответа
1

по которой примеры не работают, заключается в том, что примеры предназначены для Play 1.x, а вы используете play 2.x. Play 1.x использует Java (через скрипты Python), а Play 2 использует SBT.

Вам необходимо настроить SBT. Я не эксперт SBT, но из Google, я бы подумал, просто бег

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

а затем следуютrun как только консоль запустилась, она должна сделать свое дело, но если это не сработает, то это случай выяснить, как добавить синтаксис javaagent в консоль SBT.

Я уже пробовалplay -javaagent с последующимrun на консоли без везения. Я согласен, что решение, вероятно, заключается в передаче соответствующего параметра в SBT, но Google не помогает мне здесь :( Tahir Akhtar
2

build.bat& Quot; пакетный файл (Win) или & quot;build& Quot; сценарий оболочки (U * X), расположенный в%PLAY2_HOME%/framework папка

Вы можете добавить javagent или настроить другие параметры JVM, используемые SBT / Play2, отрегулировав параметры, определенные там. Вероятно, это то, что умные люди в Heroku уже сделали.

2

работаю нормально, как показано ниже (в моем Procfile):

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

мойnewrelic папка находится в корне, того же уровня, что иapp

@TahirAkhtar да, играть 2.0.1
@PereVillega heroku, вероятно, использует нестандартный сценарий воспроизведения, поскольку исходный сценарий передает параметр -javaagent в качестве параметра приложения, а не параметра JVM. В любом случае, я рад, что агент New Relic работает с Play 2.0. :-)
Вы используете Play 2.x? Tahir Akhtar
2

с помощью play 2.0.1-2.0.4 без изменения скрипта.

Я смог заставить работать 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 следующим образом:

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

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

Update

К сожалению, я только что узнал из поддержки New-Relic, что New-Relic определенно не поддерживает play-framework 2.x прямо сейчас (2012-10-04).


Похожие вопросы