Pytanie w sprawie playframework-2.0, javaagents, playframework – Czy można uruchomić serwer Play Framework 2.0 za pomocą javaagent?

5

Chciałbym móc uruchomić serwer Play Framework 2.0 z javaagentem.

Niektóre zasoby w sieci (patrztutaj itutaj ) sugerują, że można to zrobić po prostu dołączając-javaagent:/path/to/agent.jar doplay run ale dla mnie to nie działa.

Jakieś wskazówki?

Twoja odpowiedź

4   odpowiedź
2

Używam go w Heroku, działa dobrze jak poniżej (w moim Procfile):

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

Mójnewrelic folder jest w katalogu głównym, na tym samym poziomie coaplikacja

@PereVillega heroku prawdopodobnie używa niestandardowego skryptu odtwarzania, ponieważ oryginalny przejdzie -javaagent jako parametr aplikacji, zamiast jako parametr JVM. W każdym razie cieszę się, że agent New Relic pracuje z Play 2.0. :-) marcospereira
@TahirAkhtar yes, Play 2.0.1 Pere Villega
Czy korzystasz z Play 2.x? Tahir Akhtar
1

Powodem, dla którego przykłady nie działają, jest to, że przykłady dotyczą Play 1.x i używasz gry 2.x. Zagraj w 1.x używa Javy (poprzez skrypty Pythona), gdzie Play 2 używa SBT.

Musisz skonfigurować SBT. Nie jestem ekspertem od SBT, ale od Googlinga, myślałbym po prostu biegać

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

a następnie następujerun po uruchomieniu konsoli należy wykonać sztuczkę, ale jeśli to nie zadziała, to jest to przypadek, aby dowiedzieć się, jak dodać składnię javaagent do konsoli SBT.

Próbowałem jużplay -javaagent śledzony przezrun na konsoli bez szczęścia. Zgadzam się, że rozwiązanie prawdopodobnie polega na przekazaniu SBT odpowiedniego parametru, ale google nie pomaga mi tutaj :( Tahir Akhtar
2

build.bat„plik wsadowy (Win) lub”build„skrypt powłoki (U * X) znajdujący się w%PLAY2_HOME%/framework teczka

Możesz dodać javagent lub zmienić inne ustawienia JVM używane przez SBT / Play2 poprzez dostosowanie zdefiniowanych tam parametrów. To właśnie zrobili już sprytni ludzie w Heroku.

2

Nie istnieje czysty sposób na przekazanie parametru -javaagent do wywołania komendy java za pomocą play 2.0.1-2.0.4 bez modyfikowania skryptu.

Udało mi się uzyskać agenta javaagenta przy użyciu następującej techniki:

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

Wtedy możliwe jest przekazanie paramu -javaagent w ten sposób:

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

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

Aktualizacja

Niefortunny sidenote - właśnie dowiedziałem się ze wsparcia New-Relic, że New-Relic zdecydowanie nie obsługuje teraz play-framework 2.x (2012-10-04).


Powiązane pytania