#java #spring #profiling #visualvm
#java #spring #профилирование #visualvm
Вопрос:
Я пытаюсь профилировать свое приложение SpringBoot. Чтобы сделать это, я упаковал его в jar-файл, вот часть моего pom.xml . Я могу запустить это с java -jar App.jar
, и я могу использовать свои конечные точки REST. Это работает нормально.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
Но я хочу профилировать его с помощью VisualVM. Для этого мне нужно запустить is как
java -Xverify:none -jar App.jar
потому что в противном случае я получаю Redefinition failed with error 62
. Приложение запущено, конечные точки REST все еще работают, но я вижу этот журнал.
главная] o.a.catalina.core.AprLifecycleListener: в Java.library.path не найдена встроенная библиотека Apache Tomcat на базе APR, которая обеспечивает оптимальную производительность в производственных средах: [C:Program Файлы (x86)…
Но, как я уже сказал, это работает, но профилирование не работает. После запуска профилирования CPU на VisualVM я получаю этот stacktrace
ОШИБКА 6944 — [alina-utility-1] org.apache.catalina.core.База контейнеров: фоновый поток обработки исключений
java.язык.Ошибка NoClassDefFoundError: org/springframework/boot/autoconfigure/web/embedded /TomcatWebServerFactoryCustomizer $$Lambda $ 304 в org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer $$Lambda $304/254749889.lifecycleEvent (неизвестный источник)
Комментарии:
1. Это связано с bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8145964 Вы могли бы попробовать загрузить последнюю версию VisualVM и надеяться, что у нее есть обходной путь.
2. У меня была похожая проблема, в основном, взорвите ваш FAT JAR и повторите попытку. Я только что написал об этом статью: medium.com/kayvan-kaseb /…