Настройте приложения 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
Другие вопросы по тегам