【问题标题】:Heroku New Relic Add-on for Java App fails to open newrelic.jar适用于 Java 应用程序的 Heroku New Relic 插件无法打开 newrelic.jar
【发布时间】:2012-12-30 02:47:23
【问题描述】:

downloadedNew Relic 2.12.0 并根据 Heroku java configuration 文档进行了配置。

如下图所示,我将包内容解压缩到我的 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 文件。

新的 relic 文档说 JVM 参数(例如 -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

更新

在我的网络测功机上检查了 newrelic 目录后,我注意到 jar 文件丢失了。现在我正在调查丢失 jar 文件的原因。

更新

我的应用程序目录根目录中的 .gitignore 文件不包括 jar 文件,这会阻止部署 newrelic.jar 文件。

<<<<<<< HEAD
/target
/.classpath
/.project
/.settings
/tomcat.*
/.idea
/*.iml
=======
*.class

# Package Files #
*.jar
*.war
*.ear

【问题讨论】:

    标签: java heroku newrelic


    【解决方案1】:

    您是否有可能在您的 .gitignore 文件中留下了忽略 jar 的内容?如果你先heroku run bash 然后ls newrelic 看到里面的罐子了吗?

    【讨论】:

    • 谢谢!我刚刚确认我的 jar 文件丢失了。我更新了我原来的问题,包括确认丢失文件的屏幕截图。我现在正在调查可能的 .gitignore 问题。
    【解决方案2】:

    在 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-02
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      相关资源
      最近更新 更多