Настройте приложения Kamon и AspectjWeaver в Play
Я пытаюсь настроить игровое приложение для использования Kamon. Я создал новое игровое приложение, используя
activator new kamon-play play-scala
Затем я разместил его на github. Я работаю на OS X 10.11.1 и JDK 1.8.0_65-b17, и проект настроен на scala 2.11.6. Я настроил его (насколько мне известно) на основе инструкций по настройке Play, а также на примере sbt-aspectj-runner kamon -play. Однако, когда я пытаюсь запустить приложение, используя либо:
sbt run
или же
activator run
Я получаю следующую ошибку:
[ERROR] [11/25/2015 09:04:39.574] [ForkJoinPool-1-worker-9] [ModuleLoader(akka://kamon)]
___ _ ___ _ _ ___ ___ _ _
/ _ \ | | |_ | | | | | | \/ |(_) (_)
/ /_\ \ ___ _ __ ___ ___ | |_ | | | | | | ___ __ _ __ __ ___ _ __ | . . | _ ___ ___ _ _ __ __ _
| _ |/ __|| '_ \ / _ \ / __|| __| | | | |/\| | / _ \ / _` |\ \ / // _ \| '__| | |\/| || |/ __|/ __|| || '_ \ / _` |
| | | |\__ \| |_) || __/| (__ | |_ /\__/ / \ /\ /| __/| (_| | \ V /| __/| | | | | || |\__ \\__ \| || | | || (_| |
\_| |_/|___/| .__/ \___| \___| \__|\____/ \/ \/ \___| \__,_| \_/ \___||_| \_| |_/|_||___/|___/|_||_| |_| \__, |
| | __/ |
|_| |___/
It seems like your application was not started with the -javaagent:/path-to-aspectj-weaver.jar option but Kamon detected
the following modules which require AspectJ to work properly:
kamon-akka, kamon-scala, kamon-play
If you need help on setting up the aspectj weaver go to http://kamon.io/introduction/get-started/ for more info. On the
other hand, if you are sure that you do not need or do not want to use the weaver then you can disable this error message
by changing the kamon.show-aspectj-missing-warning setting in your configuration file.
Я пробовал все следующее:
Добавление
aspectj-play-runner:run
в файл plugins.sbt (не компилируется)передача аргумента javaagent активатору:
activator -J-javaagent::~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar
но это приводит к следующей ошибке:
Error opening zip file or JAR manifest missing : :~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar
Error occurred during initialization of VM
agent library failed to init: instrument
передавая аргумент javaagent sbt:
sbt run -Djavaagent:~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar
также пытался
sbt run -Djavaagent:~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar -Daspectj-play-runner:run
ОБНОВИТЬ
Я понял, что aspectj-play-runner:run - это задача / команда sbt, поэтому я попробовал это:
sbt
aspectj-runner:run
какие выводы:
[WeavingURLClassLoader] warning javax.* types are not being woven because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified
java.lang.RuntimeException: Kamon has not been started yet. You must either explicitlt call Kamon.start(...) or enable automatic startup by adding -Dkamon.auto-start=true to your JVM options.
Тогда я попробовал:
sbt -Dkamon.auto-start=true
aspectj-runner:run
Какие выводы:
[WeavingURLClassLoader] warning javax.* types are not being woven because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified
com.typesafe.config.ConfigException$IO: application.conf: java.io.IOException: resource not found on classpath: application.conf
Наконец, документы на самом деле говорят, что я должен бежать
sbt
aspectj-play-runner:run
Но команда / задача даже не распознается.
2 ответа
Мне удалось связаться с @kamonteam в твиттере, и это был их ответ:
@dvMENTALmadness В настоящее время у нас есть ошибка в kamon при совместном использовании модулей akka и play, до следующей версии, которую мы надеемся сделать в...... выходные, пока единственная опция - это удалить модуль kamon-akka:(
Исходя из этого, я удалил ссылки на модуль kamon-akka из моих build.sbt и application.config, и теперь он работает. Как только у меня возникнет проблема # из проекта, я отследю ее и опубликую, когда проблема будет решена. А пока вот коммит, который "исправил" проблему для меня. Мне все еще нужен модуль akka, чтобы он был для меня полным решением.
Одним из обходных путей является установка переменной среды JAVA_OPTS.
export JAVA_OPTS="-javaagent:$HOME/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.10.jar"
sbt run