[英]Heroku New Relic Add-on for Java App fails to open newrelic.jar
我下載了 New Relic 2.12.0並根據Heroku java配置文檔對其進行了配置 。
我將包內容解壓縮到spring mvc應用程序目錄的根目錄,如下圖所示
接下來,我將新文件推送到Heroku:
$ git add newrelic
$ git commit -m 'add newrelic'
$ git push heroku master
最后,我引導了新的遺物代理:
$ heroku config:add JAVA_OPTS='-Xmx384m -Xss512k -XX:+UseCompressedOops -javaagent:newrelic/newrelic.jar'
之后,我的應用程序因以下錯誤而失敗,並且似乎無法找到newrelic.jar文件。
新的遺物文檔說JVM args(例如-javaagent:newrelic / newrelic.jar)應包含newrelic.jar文件的完整路徑,但根據Heroku文檔,僅需-javaagent:newrelic / newrelic.jar。 。
2013-01-15T19:41:11+00:00 heroku[web.1]: Starting process with command `java -Xmx384m -Xss512k -XX:+UseCompressedOops -javaagent:newrelic/newrelic.jar -Dspring.profiles.active=prod -jar target/dependency/webapp-runner.jar --port 47412 target/*.war`
2013-01-15T19:41:11+00:00 app[web.1]: agent library failed to init: instrument
2013-01-15T19:41:11+00:00 app[web.1]: Error occurred during initialization of VM
2013-01-15T19:41:11+00:00 app[web.1]: Error opening zip file or JAR manifest missing : newrelic/newrelic.jar
2013-01-15T19:41:12+00:00 heroku[web.1]: Process exited with status 1
2013-01-15T19:41:12+00:00 heroku[web.1]: State changed from starting to crashed
更新
在檢查我的Web dyno上的newrelic目錄之后,我注意到jar文件丟失了。 現在,我正在尋找導致jar文件丟失的原因。
更新資料
我的應用程序目錄根目錄中的.gitignore文件不包括jar文件,這阻止了newrelic.jar文件的部署。
<<<<<<< HEAD
/target
/.classpath
/.project
/.settings
/tomcat.*
/.idea
/*.iml
=======
*.class
# Package Files #
*.jar
*.war
*.ear
是否有可能在.gitignore
文件中留下了一些忽略jar的內容? 如果您heroku run bash
,然后ls newrelic
,您看到那里的罐子了嗎?
在target / dependency文件夾中缺少jar文件時遇到了同樣的問題。
對我來說,問題是pom文件(由Heroku示例提供)
這是我的工作POM:
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-runner</artifactId>
<version>9.2.3.v20140905</version>
<destFileName>jetty-runner.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>com.newrelic.agent.java</groupId>
<artifactId>newrelic-agent</artifactId>
<version>3.12.0</version>
<destFileName>newrelic-agent.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
當然也可以將New Relic添加為依賴項...
<dependency>
<groupId>com.newrelic.agent.java</groupId>
<artifactId>newrelic-api</artifactId>
<version>3.12.0</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.