Uderzyłem się tym paskudnym zachowaniem na JBoss 4.2 w QA, a ja chcę go zdusić w zarodku, zanim przejdziemy do produkcji i znajdziemy inny przypadek.Jak wymusić ponowną kompilację jsp w JBoss 4.2?
JSP calles metoda, która miała następujący podpis:
public void methodName(String arg)
ta została zmieniona na:
public void methodName(String arg, Object... args)
Wcześniej istniejące JSP nazywa tę metodę poprzez:
methodName("param");
Po wdrożeniu zmodyfikowanego kodu JBoss nie rekompilował strony JSP, co spowodowało awarię w kontroli jakości. Dodanie głupiego komentarza do jsp rozwiązało problem (JBoss uznał, że JSP zmienił i zrekompilował go).
Czy istnieje ustawienie JBoss wymuszające ponowną kompilację stron JSP po ponownym uruchomieniu?
EDYCJA: Aby wyjaśnić niektóre punkty odpowiedzi, konfiguracja jest taka, że strony JSP są częścią wojny, która jest częścią ucha. W uchu znajdują się wszystkie klasy w słoiku.
Odnośnie do chęci wstępnej kompilacji, jeśli system nie uważa, że kompilacja jsp wymaga kompilacji, wstępnie skompiluje wymuszoną rekompilację? Nie wydaje się tak. Błąd tutaj nie jest błędem kompliacji, jest to błąd wywołania metody z powodu "zmienionego" (na poziomie kodu bajtu, a nie na poziomie kodu) sygnatury metody.
Dodatek: Należy zauważyć, że ostatnio doświadczyliśmy w produkcji, że nawet przy ustawieniu flagi akceptowanej odpowiedzi strony JSP nie rekompilowały się, mimo że w rzeczywistości strona JSP uległa zmianie. Poważny błąd, ale niezależnie, JBoss był normalnie wyłączony. W tym momencie staje się starą wersją JBoss, ale jeśli wciąż go używasz, usuwanie zawartości katalogu roboczego i tmp jest jedynym sposobem, aby się upewnić.
Nie zmieniam zaakceptowanej odpowiedzi tylko dlatego, że naprawdę dociera do tego, czego szukało. Błędy JBoss to osobny problem.
Świetnie! Sprawdzę, czy to działa, i czy akceptuje odpowiedź. – Yishai
+1 Dzięki! Wystarczy zauważyć w JBoss 5.1.0GA równoważny plik to $ JBOSS/server/default/deplyers/jbossweb.deployer/META-INF/war-deployers-jboss-bean.xml –
Dzięki temu rozwiązałem problem, który miałem ze zmianami w JSP nie zostały odzwierciedlone po wdrożeniu. –