[TOMCAT] deploy wara zaleznego od innego wara

0

Witam,

odpalam tomcata z warami w folderze webapps - z jakis powodów tomcat mi się zamraża - nie wywala błędów, ale też nie startuje do końca poprawnie.

Wydaje mi się, że chodzi o zależności między warami - jeden z nich powinien być ładowany jako ostatni (gdy wrzucam ręcznie po deployu poprzednich to wszystko jest ok).

Czy da się jakoś ustawić, że ten konkretny war ma być ładowany na końcu przez tomcata?

0

Tomcat nie gwarantuje kolejności deployu. Ja bym zastanowił się raczej dlaczego masz taką sytuację, co powoduje problem. Zależności pomiędzy warami zdarzają się, ale zazwyczaj oznaczają jakiś błąd projektowy. Obniż poziom logowania i zobacz czy coś nie leci.

0

błędu projektowego nie wykluczam - war który sprawia mi problemy zawiera w sobie moduły od warstwy prezentacji, a w tych z kolei są używane webservisy (wstrzykiwane przez springa), więc prawdopodobnie spring próbuje wstrzyknąć zależności, a nie może jeszcze znaleźć ws'ów.

Niestety nie wszystkie projekty można poprawiać, nawet gdy się chce : /

0

Na podstawie moich doświadczeń z JBoss AS (z tomcata nie korzystałem).

JBoss przetwarza pliki w następującej kolejności sar, jar, war, ear.

Pewnym rozwiązaniem jest zrobienie eara z pliku, który używa web serwisów.

To jednak do końca nie rozwiąże problemu...
"Wystawianie" web serviców odbywa się w innym wątku niż przetwarzanie kolejnych plików sar, jar, war, ear. Możliwe jest więc, że zanim web servicy zostaną wystawione z wara, ear już będzie chciał się do nich odwołać.
Brute force polega na odczekaniu np. 10 sekund zanim spróbuje się dostać do webservicu.
Raczej nie powinieneś wstrzymywać wątku serwera.
Użyj jednego z:
-EJB Timer Services http://technology-related.com/javaee/5/docs/tutorial/doc/bnboy.html
-Quartz http://www.quartz-scheduler.org/
-Stworzenia zwykłego wątku, który poczeka
-Użycie klasy Timer

Można też dobijać się do service'u "do skutku" co np. 3 sekundy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1