Отладка внешних библиотек без их изменения в tomcat - PullRequest
0 голосов
/ 20 января 2012

У нас есть веб-приложение, которое иногда (довольно редко, несколько раз в день) дает ошибка в производстве. Он развернут на Tomcat, использует Spring + Hibernate, вызывается ошибка исключением Hibernate, которое трудно понять, не регистрируя параметры, передаваемые методу класса Hibernate. Невозможно заменить библиотека Hibernate с измененной версией, которая регистрирует параметры, и spring-aop не может использоваться, так как "бобы" не управляются. Я видел пример байт-кода инструментарий, использующий javassist, на http://today.java.net/pub/a/today/2008/04/24/add-logging-at-class-load-time-with-instrumentation.html, однако пытается запустить его под tomcat, инструментальный код не запускается, вероятно, из-за проблем с загрузкой классов чего я сейчас не понимаю.

То, что я спрашиваю тогда, это: кто-нибудь знает о более или менее простом способе инструмента байт-код под tomcat для такой задачи, как запись параметров методов в внешние библиотеки? Можете ли вы дать дополнительную информацию по этой проблеме?

Ответы [ 2 ]

2 голосов
/ 22 января 2012

Взгляните на BTrace .

Это позволит вам регистрировать вызовы других классов / функций без замедления основного приложения.

1 голос
/ 20 января 2012

Вы можете (временно) включить JDWP в производственном Tomcat, подключить отладчик и установить точку останова в коде, нарушающем работу. Но я бы рекомендовал избегать этого на реальной рабочей машине - лучше клонировать рабочую среду на другую машину, с которой вы можете работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...