У меня следующая проблема: я пытаюсь развернуть конфигурацию телеметрии Azure в файле jar, который находится в файле war внутри основного уха. К сожалению, во время запуска сервера возникают ошибки, так как ApplicationInsights.xml не может быть найден. Я отладил его и обнаружил, что он не может быть прочитан com.microsoft.applicationinsights.internal.config.ConfigurationFileLocator.getConfigurationFile ().
Есть структура моего модуля:
azure
|_ src
|_ main
|_ java
| |_ mypackage
| |_ MicrometerRegistryConfigurationListener.java
|_ resources
|_ ApplicationInsights.xml
Существует MicrometerRegistryConfigurationListener.java:
@WebListener
public class MicrometerRegistryConfigurationListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
MeterRegistry azureMeterRegistry = new AzureMonitorMeterRegistry(new AzureMonitorConfig() {
@Override
public String get(String key) {
return null;
}
@Override
public Duration step() {
return Duration.ofSeconds(5);
}
}, Clock.SYSTEM);
new JvmThreadMetrics().bindTo(azureMeterRegistry);
new JvmMemoryMetrics().bindTo(azureMeterRegistry);
new JvmGcMetrics().bindTo(azureMeterRegistry);
servletContextEvent.getServletContext().setAttribute("AzureMonitorMeterRegistry", azureMeterRegistry);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
А есть структура уха:
ear
|_ war
|_ WEB-INF/lib
|_ azure.jar
|_ ApplicationInsights.xml
Конечно, azure.jar содержит также классы, т.е. MicrometerRegistryConfigurationListener.
Что происходит? Почему ApplicationInsights.xml не отображается?