将版本更新到 3.4.9 后,TelemetryConfiguration 在 com.microsoft.applicationinsights 中不公开

问题描述 投票:0回答:1

Maven建议将com.microsoft.azure:applicationinsights-web更新到3.4.9版本,之前我使用的是2.6.2。更新后我收到错误:

java: com.microsoft.applicationinsights.TelemetryConfiguration is not public in com.microsoft.applicationinsights; cannot be accessed from outside package
java: cannot find symbol symbol:   class WebRequestTrackingFilter location: package com.microsoft.applicationinsights.web.internal

如果我更新到最新的 2.x 应用程序洞察版本,一切正常。但 3.x 版本不行。我正在使用 Spring boot 2.7.13。 您能告诉我应该采取什么步骤来解决这个问题吗?

我使用的代码类似于下面的代码(无法让 AppInsights 在 Spring Boot 下工作

@Configuration
public class AppInsightsConfig {

    @Bean
    public String telemetryConfig() {
        String telemetryKey = System.getenv("APPLICATION_INSIGHTS_IKEY");
        if (telemetryKey != null) {
            TelemetryConfiguration.getActive().setInstrumentationKey(telemetryKey);
        }
        return telemetryKey;
    }

    @Bean
    public FilterRegistrationBean aiFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new WebRequestTrackingFilter());
        registration.addUrlPatterns("/**");
        registration.setOrder(1);
        return registration;
    } 

    @Bean(name = "WebRequestTrackingFilter")
    public Filter WebRequestTrackingFilter() {
        return new WebRequestTrackingFilter();
    }   
}
java spring azure-application-insights
1个回答
0
投票

发生这种情况是由于依赖项的版本与 spring boot 之间不兼容。

  • applicationinsights-web
    3.4.9 版与
    Spring Boot 2.7.13
    不兼容。
  • applicationinsights-web
    2.x.x 版本与
    spring-boot
    2.x.x.
  • 兼容

检查以下步骤是否有助于解决您的问题:

  • 如果您是升级applicationsightsweb版,需要升级springboot版本才能兼容升级后的applicationinsights-web版本。

  • 此外,将

    application-insights-core
    软件包升级到最新版本,以与您的
    application-insights-web
    版本兼容。

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>3.4.15</version>
</dependency>
  • 在代码中导入
    com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter
    com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter
    类。
package  com.example.demo;

import  org.springframework.boot.web.servlet.FilterRegistrationBean;
import  org.springframework.context.annotation.Bean;
import  org.springframework.context.annotation.ComponentScan;
import  org.springframework.context.annotation.Configuration;
import  com.microsoft.applicationinsights.TelemetryConfiguration;
import  com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter;
  • 相反,您还可以在 pom.xml 中使用
    applicationinsights-runtime-attach
    dependency 来配置 Application Insights。
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.4.15</version>
</dependency>

参考资料:

从 2.x 升级 - Azure Monitor Application Insights Java - Azure Monitor

© www.soinside.com 2019 - 2024. All rights reserved.