Frage an playframework, playframework-2.0, javaagents – Ist es möglich, den Play Framework 2.0-Server mit einem Java-Agenten auszuführen?

5

Ich möchte den Play Framework 2.0-Server mit einem Java-Agenten ausführen können.

Einige Ressourcen im Web (sieheHier undHier ) schlagen vor, dass dies einfach durch Anhängen erfolgen könnte-javaagent:/path/to/agent.jar zuplay run aber es scheint nicht für mich zu funktionieren.

Irgendwelche Hinweise?

Deine Antwort

4   die antwort
2

den Parameter -javaagent mit play 2.0.1-2.0.4 an den Java-Befehlsaufruf zu übergeben, ohne ein Skript zu ändern.

Ich konnte einen Java-Agenten mit der folgenden Technik zum Arbeiten bringen:

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

Dann ist es möglich, den -javaagent-Parameter wie folgt zu übergeben:

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

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

Aktualisieren

Eine unglückliche Nebenbemerkung - Ich habe gerade durch die Unterstützung von New-Relic herausgefunden, dass New-Relic momentan definitiv kein Play-Framework 2.x unterstützt (04.10.2012).


2

):

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

Meinenewrelic Ordner befindet sich im Stammverzeichnis, auf derselben Ebene wieApp

Verwenden Sie Play 2.x? Tahir Akhtar
@ TahirAkhtar ja, spielen 2.0.1 Pere Villega
@PereVillega heroku verwendet wahrscheinlich ein benutzerdefiniertes Wiedergabeskript, da das ursprüngliche Skript -javaagent als Anwendungsparameter anstelle eines JVM-Parameters übergibt. Wie auch immer, ich bin froh zu wissen, dass New Relic Agent mit Play 2.0 arbeitet. :-) marcospereira
2

build.bat"Batch-Datei (Win) oder"build"Shell - Skript (U * X) im%PLAY2_HOME%/framework Mappe

Sie können einen Java Agent hinzufügen oder andere von SBT / Play2 verwendete JVM-Einstellungen anpassen, indem Sie die dort definierten Parameter anpassen. Dies ist wahrscheinlich, was die klugen Leute bei Heroku bereits getan haben.

1

warum die Beispiele nicht funktionieren, ist, dass die Beispiele für Play 1.x sind und Sie Play 2.x verwenden. Play 1.x verwendet Java (über Python-Skripte), während Play 2 SBT verwendet.

Sie müssen SBT konfigurieren. Ich bin kein SBT-Experte, aber von Googeln hätte ich gedacht, einfach zu laufen

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

und dann gefolgt vonrun Sobald die Konsole gestartet wurde, sollte dies der Fall sein. Wenn dies jedoch nicht funktioniert, müssen Sie herausfinden, wie Sie der SBT-Konsole die JavaAgent-Syntax hinzufügen können.

Ich habe es schon versuchtplay -javaagent gefolgt vonrun auf der Konsole ohne Glück. Ich stimme zu, dass die Lösung wahrscheinlich darin besteht, einen geeigneten Parameter an SBT zu übergeben, aber Google hilft mir hier nicht :( Tahir Akhtar

Verwandte Fragen