WebSphere的Newrelic安装 - ClassNotFoundException

时间:2013-09-04 03:13:47

标签: java websphere newrelic

我们在WebSphere Application / WebSphere Commerce系统上安装了NewRelic java代理,在NewRelic日志中我们看到了这一点:

Sep 3, 2013 22:47:53 -0400 NewRelic 14 INFO: The data collector is temporarily unavailable. This can happen periodically. In the event that availability of our servers is not restored after a period of time, then please report this to New Relic. java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
    at javax.net.ssl.DefaultSSLSocketFactory.a(SSLSocketFactory.java:11)
    at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:6)
    at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:161)
    at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:36)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1184)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:390)
    at com.ibm.net.ssl.www2.protocol.https.b.getResponseCode(b.java:75)
    at com.newrelic.agent.transport.DataSenderImpl.connectAndSend(DataSenderImpl.java:550)
    at com.newrelic.agent.transport.DataSenderImpl.send(DataSenderImpl.java:600)
    at com.newrelic.agent.transport.DataSenderImpl.invoke(DataSenderImpl.java:480)
    at com.newrelic.agent.transport.DataSenderImpl.invokeNoRunId(DataSenderImpl.java:475)
    at com.newrelic.agent.transport.DataSenderImpl.getRedirectHost(DataSenderImpl.java:203)
    at com.newrelic.agent.transport.DataSenderImpl.connect(DataSenderImpl.java:193)
    at com.newrelic.agent.RPMService.launch(RPMService.java:194)
    at com.newrelic.agent.rpm.RPMConnectionServiceImpl$RPMConnectionTask.attemptConnection(RPMConnectionServiceImpl.java:301)
    at com.newrelic.agent.rpm.RPMConnectionServiceImpl$RPMConnectionTask.access$1100(RPMConnectionServiceImpl.java:101)
    at com.newrelic.agent.rpm.RPMConnectionServiceImpl$RPMConnectionTask$3.run(RPMConnectionServiceImpl.java:235)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:328)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:161)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:109)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:191)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:215)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:738)
Caused by: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
    at javax.net.ssl.SSLJsseUtil.b(SSLJsseUtil.java:125)
    at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:3)
    at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:41)
    at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:46)
    at com.ibm.net.ssl.www2.protocol.https.b.<init>(b.java:26)
    at com.ibm.net.ssl.www2.protocol.https.Handler.openConnection(Handler.java:1)
    at com.ibm.net.ssl.www2.protocol.https.Handler.openConnection(Handler.java:5)
    at java.net.URL.openConnection(URL.java:957)
    at com.newrelic.agent.transport.DataSenderImpl.createConnection(DataSenderImpl.java:676)
    at com.newrelic.agent.transport.DataSenderImpl.connectAndSend(DataSenderImpl.java:540)
    ... 18 more

似乎有一些关于如何更新基于Eclipse的IDE环境以在其他情况下克服此错误的文档,但没有任何特定于NewRelic的文档。有没有人在此之前看到这个可以提供有关如何解决问题的建议?

4 个答案:

答案 0 :(得分:1)

New Relics Java代理的下一个版本应该可以在不进行任何配置更改的情况下运行。对于2.21.X及更早版本,请在support.newrelic.com上提交支持请求

答案 1 :(得分:0)

阅读并查看本出版物是否为您提供了提示:

http://www-01.ibm.com/support/docview.wss?uid=swg21584437

答案 2 :(得分:0)

我经历了同样的事情。正如您可能从Robban WebSphere所喜欢的文章中收集到的那样,SSLConnectionFactory中有一些限制,因此退出修复只需编辑 newrelic.yml 并配置:

# The agent communicates with New Relic via https by
# default.  If you want to communicate with newrelic via http,
# then turn off SSL by setting this value to false.
# This work is done asynchronously to the threads that process your
# application code, so response times will not be directly affected
# by this change.
# Default is true.
ssl: false
祝你好运。

答案 3 :(得分:0)

New Relic的Java Agent 3.0.0或更高版本应完全解决此问题,无需任何自定义配置,当然不会关闭SSL! Release notes.