2012-12-12 14 views
5

Il progetto a cui lavoro è piuttosto specifico. Utilizziamo GWT con il backend SAP. Corriamo il modo Dev utilizzando la seguente configurazione (come argomenti del programma; corro il progetto direttamente utilizzando IntelliJ IDEA)Modalità Super Dev su un server remoto

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

Nota, non abbiamo usato un server locale (-noserver).

Dopo aver familiarizzato con la modalità Super Dev, ho capito che funziona in modo simile alla modalità Web GWT, cioè compila JavaScript (la cartella da compilare può essere specificata) e quindi esegue il server di codice con quello script ospitato.

A causa delle specifiche del progetto, il JavaScript compilato viene distribuito sul server remoto utilizzando maven tramite WebDav. Quindi semplicemente specificando -workDir come parametro non verranno distribuiti gli script sul server remoto. Né possiamo eseguire (almeno al momento) un server Java sull'indirizzo server-url.

È possibile utilizzare la modalità Super Dev in questa situazione?

risposta

9

Sì, è possibile.

EDIT 2016/11/27: Ho costruito un devserver che può utilizzare -launcherDir SuperDevMode in stile, senza la necessità di scrivere al server, utilizzando un webpack simile delega: https://github.com/tbroyer/gwt-devserver

EDIT: ci sono alcuni problemi ri. proprietà di legame differito. L'uso consigliato di SDM (dal momento che GWT 2.7) è quello di utilizzare -launcherDir che significa utilizzare un server locale.

SuperDevMode funziona in modo simile a DevMode con -noserver, il che significa che è necessario distribuire l'app almeno una volta sul server. Nel caso di SuperDevMode, significa che devi compilare e distribuire con il linker xsiframe e la proprietà devModeRedirectEnabled impostata su true.

Quindi si esegue SuperDevMode sulla macchina, creare i bookmarklets se non è già stato fatto, caricare l'app dal server remoto e fare clic sulla modalità Dev sul bookmarklet.

Questo memorizzerà qualcosa nel sessionStorage del browser in modo che ricaricando la pagina verrà ora caricata la permutazione dal SuperDevMode in esecuzione sul computer anziché sul server remoto.

Ulteriori informazioni su come funziona SuperDevMode: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

+0

Ma quale i parametri dovrei eseguire la modalità Super Dev? Shoul lo specifico come '-bindAddress server-url -port 8000'? Se lo faccio ricevo 'java.net.BindException: Impossibile assegnare l'indirizzo richiesto' e un avviso' failed SelectChannelConnector @ server-url: 8000'. – Vic

+2

La risposta è corretta, è possibile. Tuttavia, ho dovuto eseguire il SuperDevMode con '-bindAddress 0.0.0.0'.Quindi ho aperto il link offerto 'http: // victor-dell: 9876', dove potevo trascinare i bookmarklets. Il passo successivo è stato aprire il mio 'http: // server-url: 8000/aaa' e quindi fare clic sul bookmarklet" Dev Mode On ". Posso anche saltare andando a 'http: // victor-dell: 9876' una volta che ho quei bookmarklets. – Vic

+0

Senza '-bindAddress', puoi semplicemente accedere al codeserver su' localhost' o '127.0.0.1', e tutto dovrebbe funzionare allo stesso modo. –

0

Per ora, vedo solo una soluzione possibile, che è quello di eseguire il gwt-codeserver.jar in qualche modo sul server SAP (con l'indirizzo, ad esempio, http://server-url:8000/bbb) e scrivere una servlet, che reindirizzare tutte le richieste per http://server-url:8000/aaa. Tuttavia, non è molto facile da implementare. Il server SAP ha un meccanismo di autenticazione "complicato", in cui l'utente prima vede la pagina di accesso e quindi viene reindirizzato a un URL specifico della sessione generato.

Altre idee sono benvenute.

Problemi correlati