2012-12-12 12 views
5

Projekt, nad którym pracuję, jest dość specyficzny. Używamy GWT z backendem SAP. Możemy uruchomić tryb Dev stosując następującą konfigurację (jako argumenty programu; biegnę projektu bezpośrednio przy użyciu IntelliJ IDEA)Tryb Super Dev na zdalnym serwerze

-noserver -logLevel INFO -startupUrl http://server-url:8000/aaa -whitelist ^http[:][/][/]server-url[.]eu[:]8000/aaa com.company.project.main.Main 

Uwaga, nie korzysta z serwera lokalnego (-noserver).

Po zapoznaniu się z trybem Super Dev zrozumiałem, że działa on podobnie do GWT Web Mode, tzn. Kompiluje JavaScript (można określić folder do kompilacji), a następnie uruchamia serwer kodu z hostowanym skryptem.

Ze względu na specyfikę projektu skompilowany skrypt JavaScript jest wdrażany na serwerze zdalnym za pomocą programu maven za pośrednictwem WebDav. Po prostu podanie parametru -workDir nie spowoduje wdrożenia skryptów na serwerze zdalnym. Nie możemy też uruchomić (przynajmniej w tej chwili) serwera Java na adresie server-url.

Czy możemy użyć trybu Super Dev w tej sytuacji?

Odpowiedz

9

Tak, można.

EDIT 27.11.2016: Zbudowałem devserver że mogą korzystać -launcherDir -Style SuperDevMode bez konieczności zapisu do serwera za pomocą WebPACK podobny Proxy: https://github.com/tbroyer/gwt-devserver

EDIT: jest kilka problemów ponownie. właściwości opóźnionego wiązania. Zalecanym zastosowaniem SDM (od GWT 2.7) jest użycie -launcherDir, co oznacza użycie lokalnego serwera.

Tryb SuperDevMode działa podobnie jak tryb DevMode z -noserver, co oznacza, że ​​musisz przynajmniej raz wdrożyć aplikację na swoim serwerze. W przypadku SuperDevMode oznacza to, że musisz skompilować i wdrożyć z linkerem xsiframe i ustawieniem devModeRedirectEnabled na true.

Następnie uruchom SuperDevMode na swoim komputerze, utwórz bookmarklety, jeśli nie zostało to już zrobione, załaduj aplikację ze zdalnego serwera i kliknij zakładkę z komentarzem dla trybu deweloperskiego Dev Mode On.

Spowoduje to zapisanie czegoś w przeglądarce sessionStorage, tak aby ponowne załadowanie strony załadowało teraz permutację z SuperDevMode uruchomionego na twoim komputerze, a nie na serwerze zdalnym.

Więcej informacji o tym, jak SuperDevMode działa: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

+0

Ale który jakie parametry powinien uruchomić tryb Super Dev? Czy mogę podać go jako '-bindAddress server-url -port 8000'? Jeśli to zrobię, otrzymam 'java.net.BindException: Nie mogę przypisać żądanego adresu' i ostrzeżenie' nie powiodło się SelectChannelConnector @ server-url: 8000'. – Vic

+2

Odpowiedź jest poprawna, jest to możliwe. Jednak musiałem uruchomić SuperDevMode z opcją '-bindAddress 0.0.0.0'.Następnie otworzyłem oferowane łącze 'http: // victor-dell: 9876', gdzie mogłem przeciągnąć bookmarklety. Następnym krokiem było otwarcie mojego 'http: // server-url: 8000/aaa', a następnie kliknięcie bookmarkletu" Dev Mode On ". Mogę również pominąć opcję 'http: // victor-dell: 9876', gdy tylko będę mieć te bookmarklety. – Vic

+0

Bez opcji '-bindAddress' możesz po prostu uzyskać dostęp do serwera kodów na' localhost' lub '127.0.0.1', a wszystkie powinny działać tak samo. –

0

Na razie widzę tylko jedno możliwe rozwiązanie, które ma uruchomić gwt-codeserver.jar jakoś na serwerze SAP (z adresem, powiedzmy, http://server-url:8000/bbb) i napisać aplet, który będzie przekierować wszystkie żądania do http://server-url:8000/aaa. Jednak nie jest to łatwe do wdrożenia. Serwer SAP ma "podchwytliwy" mechanizm uwierzytelniania, w którym użytkownik najpierw widzi stronę logowania, a następnie jest przekierowywany na wygenerowany specyficzny dla sesji adres URL.

Inne pomysły są bardzo mile widziane.