2009-10-06 7 views
8

Próbuję wywołać usługę sieci Web w moim wstecznym kodzie Java, gdy jest działa w trybie hostowanym. Wszystko ładuje się dobrze, wywołanie GWT RPC działa i widzę je na serwerze, a gdy tylko spróbuje połączyć się z zewnętrzną usługą sieciową (przy użyciu jax-ws), pomost zapada się z wewnętrznym błędem serwera (500).Skąd wziął się Jetty trybu hostowanego GWT?

Uszkodziłem dziennik aż do ALL, ale nadal nie widzę żadnych śladów stosu lub przyczyną tego błędu. Właśnie otrzymałem jedną linię o błędzie 500 z nagłówkiem żądania i odpowiedzią.

Czy ktoś wie, czy wewnętrzny pomost prowadzi gdzieś plik dziennika, czy , w jaki sposób mogę przeprowadzić debugowanie, co jest nie tak?

Używam GWT 1.7 na OS X 10.6.1

Edit: wiem, że mogę korzystać z opcji -noserver, ale jestem naprawdę zainteresowany w znalezieniu się, gdzie ta sprawa życia!

+0

można użyć '-logLevel DEBUG' jako argumentu wykonawczego i sprawdzić konsolę out. –

Odpowiedz

3

Od the documentation:

Można również użyć rzeczywistej produkcji serwera podczas debugowania w trybie gospodarzem. Może to być przydatne, jeśli dodajesz GWT do istniejącej aplikacji, lub jeśli twoje wymagania po stronie serwera mają , stają się czymś więcej, niż może obsłużyć serwer osadzony WWW . Zobacz ten artykuł na temat , jak korzystać z serwera zewnętrznego w trybie hostowanym w trybie .

więc najprostszym rozwiązaniem byłoby użyć opcji -noserver i używać własnego serwera Java - znacznie mniej ograniczeń w ten sposób, bez żadnych wad (które znam). Jeśli korzystasz z wtyczki Google for Eclipse, możesz ją łatwo skonfigurować we właściwościach projektu. Szczegółowe informacje na temat konfiguracji można znaleźć na stronie the official site.

Edycja: można spróbować z pominięciem trybu Hosted TreeLogger, jak opisano tutaj: http://blog.kornr.net/index.php/2009/01/27/gently-asking-the-gwt-hosted-mode-to-not):

Wystarczy utworzyć plik o nazwie „commons-logging.properties” na korzenia ścieżce klas i dodać linię:

[korzystania z backend Log4j] org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

[użyć backend JDK14] org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

[używać backendu SimpleLog] org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

Edit2: bagażnik z GWT teraz obsługuje również parametr -logfile włączyć rejestrowanie pliku, ale to chyba nie pomoże w tym przypadku, ponieważ problem polega na sposobie, w jaki tryb hostowany traktuje wyjątki, a nie sposób, w jaki je przedstawia.

+2

Wiem, i to właśnie robię, ale naprawdę chciałbym wiedzieć, skąd się bierze ta instancja Jetty i gdzie (jeśli ma taką) to plik dziennika żyje – rustyshelf