【问题标题】:[Azure][Application Insights agent for Java]java.lang.NoClassDefFoundError: http/RequestLine[Azure][适用于 Java 的 Application Insights 代理]java.lang.NoClassDefFoundError: http/RequestLine
【发布时间】:2016-11-10 09:32:19
【问题描述】:

使用 applicationinsights-agent-1.0.6.jar 作为代理启动我的码头后(请参阅https://github.com/Azure/azure-content/blob/master/articles/application-insights/app-insights-java-agent.md),我得到以下堆栈跟踪。删除代理删除堆栈跟踪。

我不明白为什么它会打扰“java.lang.NoClassDefFoundError: http/RequestLine”,我发现这个类无处...

有人有同样的问题吗?

    java.lang.NoClassDefFoundError: http/RequestLine
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:1231)
    at com.microsoft.applicationinsights.internal.channel.common.ApacheSender43.<init>(ApacheSender43.java:52)
    at com.microsoft.applicationinsights.internal.channel.common.ApacheSenderFactory.create(ApacheSenderFactory.java:40)
    at com.microsoft.applicationinsights.internal.channel.common.TransmissionNetworkOutput.<init>(TransmissionNetworkOutput.java:95)
    at com.microsoft.applicationinsights.internal.channel.common.TransmissionNetworkOutput.create(TransmissionNetworkOutput.java:85)
    at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannelFactory.create(InProcessTelemetryChannelFactory.java:41)
    at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannel.initialize(InProcessTelemetryChannel.java:263)
    at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannel.<init>(InProcessTelemetryChannel.java:147)
    at com.microsoft.applicationinsights.internal.config.TelemetryConfigurationFactory.setChannel(TelemetryConfigurationFactory.java:396)
    at com.microsoft.applicationinsights.internal.config.TelemetryConfigurationFactory.initialize(TelemetryConfigurationFactory.java:102)
    at com.microsoft.applicationinsights.TelemetryConfiguration.getActive(TelemetryConfiguration.java:74)
    at com.microsoft.applicationinsights.TelemetryClient.<init>(TelemetryClient.java:75)
    at com.microsoft.applicationinsights.internal.common.LogTelemetryClientProxy.<init>(LogTelemetryClientProxy.java:72)
    at com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender.activateOptions(ApplicationInsightsAppender.java:103)
    at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
    at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:295)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
    at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523)
    at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:492)
    at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1006)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:872)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:755)
    at org.apache.log4j.xml.XMLWatchdog.doOnChange(DOMConfigurator.java:1125)
    at org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:89)
    at org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:58)
    at org.apache.log4j.xml.XMLWatchdog.<init>(DOMConfigurator.java:1117)
    at org.apache.log4j.xml.DOMConfigurator.configureAndWatch(DOMConfigurator.java:735)
    at org.apache.log4j.xml.DOMConfigurator.configureAndWatch(DOMConfigurator.java:718)

命令行

    java -Djetty.home=/opt/servers/jetty -Djetty.base=/opt/servers/jetty-base  -Djava.awt.headless=true -Dfile.encoding=UTF-8  -javaagent:/opt/servers/jetty-base/lib/ext/applicationinsights-agent-1.0.6.jar -Djava.net.preferIPv4Stack=true -cp /opt/servers/jetty/start.jar org.eclipse.jetty.start.Main &

【问题讨论】:

    标签: java azure agent


    【解决方案1】:

    根据异常java.lang.NoClassDefFoundError,表示在命令行中遗漏了一些依赖库,如httpclient

    要解决此问题,您需要从page 下载Application Insights SDK for Java 的zip file,并将: 分隔符附加到选项-cp 的尾部。

    如有任何疑问,请随时告诉我。

    【讨论】:

    • 是的,我理解 NoClassDefFoundError 意味着该类不可用。但是什么是“http/RequestLine”类?它是从哪里来的?没有代理,程序没问题,有代理它抱怨缺课......
    • 来自org.apache.httpcomponents/httpcore,请看链接1 & 2
    • 是的,我找到了“org.apache.http.RequestLine”,但错误是关于“http.RequestLine”
    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多