2009-11-04 6 views
9

Załóżmy, że debuguję niektóre dziwne problemy z ładowaniem klas aplikacji wdrożonej na serwerze aplikacji Java EE. Z jakiegoś powodu wydaje się, że mam zduplikowane słoje na ścieżkach klas dwóch programów ładujących klasy (2 różne programy ładujące klasy EAR), a klasy z przestrzeni nazw tych ładowarek klas muszą się współpracować.Dowolne narzędzie do przeglądania obrazu drzewa programu ładującego klasy?

Pytanie brzmi: czy istnieje jakieś narzędzie, które może wyświetlić obraz (obrazek) drzewa programu ładującego klasy wraz z repozytorium każdego programu ładującego klasy? Oczywiście, nie ma większego znaczenia, aby pokazać dokładnie obraz, jeśli może to być jakiś dynamiczny interfejs użytkownika (np. Jak składanie/rozkładanie drzewa Eksploratora Windows), byłbym bardzo szczęśliwy.

UPD: Używam JBoss 5.1.

Dzięki

Odpowiedz

3

W JBoss możesz log all classloader events, który powinien powiedzieć ci dokładnie, gdzie są twoje sprzeczne klasy, jeśli możesz przesłuchać poprzez gadatliwość.

Możesz też przejść do konsoli jmx, znaleźć sekcję jboss.classloader, znaleźć wpis dla swojego ucha (coś podobnego do id="vfszip:/apps/jboss-5.1.0.GA/server/default/deploy/your.war/") i wywołać findClassLoaderForClass dla klasy, która daje ci problemy.

+0

Link pokazuje tylko dokumenty jboss. Niezbyt pomocne w ustaleniu, gdzie można to znaleźć? –

+0

Aktualizacja linku: https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/4.3/html/Server_Configuration_Guide/Class_Loading_and_Types_in_Java-LinkageErrors___Making_Sure_You_Are_Who_You_Say_You_Are.html –