2011-08-19 16 views
6

Chciałbym użyć słowa kluczowego Java assert w mojej aplikacji internetowej Spring, głównie w moich klasach domeny (sprawdzanie niezmienników w konstruktorach), ale nie widzę sposobu włączenia sprawdzania asercji środowiska wykonawczego.Jak mogę włączyć asercje Java w Tomcat

Dla normalnego aplikacji java, chciałbym użyć przełącznika -ea pomocą polecenia java, ale nie widzę w jaki sposób mogę to zrobić z Tomcat, itp

Jest to zalecana rzeczą, czy mam użyć klasy "Assert" z frameworka Spring? Wolałbym jednak, aby moje klasy domen były wolne od wiosennych zależności.

Odpowiedz

8

Dla tomcat dodaj -ea do JAVA_OPTS (wszystkie procesy Java uruchomione) lub jeszcze lepiej do CATALINA_OPTS (tylko do silnika aplikacji internetowej).

Przeczytaj pliki catalina.bat lub catalina.sh, aby uzyskać więcej informacji na temat JAVA_OPTS i CATALINA_OPTS.

Edited: Dzięki komentarzy @Joachim

+0

Dzięki za to, ale a) używam (na dev) VMware tc Server od wewnątrz Eclipse (to ma 'catalina.bat' ?, b) Wolałbym włączać asercje tylko w mojej własnej aplikacji internetowej i c) w jaki sposób mógłbym to zrobić za pomocą czegoś takiego jak VMWares CloudFoundry? Dzięki jeszcze raz! –

+2

W bardziej poważny sposób: "CATALINA_OPTS" byłby bardziej odpowiedni punkt tutaj. Różnica polega na tym, że 'JAVA_OPTS' będzie używany na * wszystkich * wywołaniach Java ze skryptów startowych Tomcat (łącznie z" połącz się z działającym serwerem i poproś o wyłączenie "), gdzie' CATALINA_OPTS' będzie używane tylko dla faktycznie działa serwer. W tym przypadku różnica nie jest zbyt ważna, ale dla rzeczy takich jak pamięć ważne jest, aby użyć właściwego (nie chcesz, aby mały skrypt zamykający przydział 4 GB pamięci). –

+0

@DecaniBass: Z technicznego punktu widzenia powinno być możliwe włączanie asercji dla poszczególnych aplikacji internetowych, ponieważ istnieje ['ClassLoader.setDefaultAssertionStatus()'] (http://download.oracle.com/javase/7/docs/api/ java/lang/ClassLoader.html # setDefaultAssertionStatus (boolean)), ale niestety nie wiem * jeśli * i * jak * te serwery aplikacji ujawniają tę opcję. –

Powiązane problemy