2013-02-27 10 views
12

Chciałbym wypróbować przeładunek klasy Spring Spring "Spring Loaded", z Tomcat uruchamianym przez IntelliJ.IntelliJ + Tomcat + Spring-Loaded

https://github.com/SpringSource/spring-loaded

Dodałem argumenty JVM do mojej konfiguracji Tomcat uruchomić, a mój webapp uruchamia się bez błędów i wydaje się zachowywać normalnie.

Nie jestem pewien, jak uruchomić ponowne ładowanie klasy. Czy po prostu muszę skompilować klasy, które modyfikuję? Próbowałem tego i to nie działało. Czy muszę aktualizować Tomcat i wdrażać klasy i zasoby? To też nie działa ...?

Wszelkie szczególne szczegóły konfiguracji będą bardzo mile widziane.

EDIT: Więcej informacji, myślę, że mój problem może dotyczyć używania dwóch modułów, jednej biblioteki kodu rdzeniowego i jednej aplikacji internetowej. Używam Mavena dla obu, jednego skonfigurowanego jako projekt jar, a drugiego jako projektu wojennego. IntelliJ ustawia Artefakt na wybuch wojny, aby użyć pliku jar modułu jar. Próbowałem już zmienić konfigurację artefaktu, aby zamiast tego zawierał skompilowane wyjście modułu jar w WEB-INF/classes. Teraz widzę pliki .class w target/webapp/WEB-INF/class/etc. Ale nie jestem pewien, jak pobrać IntelliJ, aby zaktualizować konkretny plik klasy podczas edycji.

+0

Czy wymyślić sposób do obsługi submodules z sprężynowy? – Damien

+0

Jeszcze nie. Nie wróciłem do pracy nad tym od dłuższego czasu. – sdouglass

Odpowiedz

5

Jeśli dodano następujące parametry JVM (jak opisano na stronie sprężyną) do Tomcat

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass 

powinno być w porządku. Może pomóc wyłączyć automatyczne ponowne ładowanie w tomcat dla testowanej aplikacji webowej. Przykładowy plik na serwerze.xml:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> 
    <Context docBase="projekt" path="/projekt" reloadable="false" ... 

Zapewnia to, że tylko obciążony sprężynowo moduł ładujący ładuje zmienione klasy.

+0

Dzięki za odpowiedź. Co powoduje, że obciążony sprężyną program ładujący klasy ładuje zmienione klasy? Czy to się zdarza po prostu okresowo? Czy monitoruje pliki klas dotyczące zmian datownika? Lub czy muszę wykonać akcję w IntelliJ, aby ją uruchomić? – sdouglass

+0

Zgodnie z https://github.com/spring-projects/spring-loaded pliki klas są obserwowane dla zmian raz na sekundę. – varad

+0

Przepraszam, ale jak to zmienić za pomocą IntelliJ? Mam na myśli, że nie można tego zmienić za pomocą IntelliJ, ponieważ nie masz widoczności "server.xml", prawda? –

Powiązane problemy