2009-08-25 1 views
8

Esiste un modo semplice per richiamare un endpoint del servizio RPC GWT direttamente dal codice Java? Intendo codice Java reale, non codice Java compilato in javascript.Richiamare direttamente un servizio RPC GWT da Java

Chiedo perché vogliamo eseguire benchmark delle prestazioni/prove di stress contro un'interfaccia GPC RPC. Vorrei scrivere il cablaggio di prova in Java ed eseguirlo in una JVM (a differenza di javascript in esecuzione in un browser).

Immagino che ci sia un modo per farlo perché presumo che la modalità GWT Hosted richieda tale funzionalità. Tuttavia, non riesco a trovare alcun codice nel runtime GWT che dimostri come fare in modo pulito. Ho esaminato il pacchetto com.google.gwt.user.client.rpc ma le cose lì dentro sembrano usare JSNI che ovviamente non sarebbe utilizzabile da Java puro.

risposta

10

GWT SyncProxy consente di accedere ai servizi GPC RPC (ad es. Metodi) dal puro codice Java (non JSNI). Quindi puoi usarlo per testare la tua interfaccia RPC.

Vedere http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/ per dettagli.

+0

Questo meccanismo potrebbe funzionare per un sistema di produzione? Ad esempio, potrei usarlo per fornire un'API Java lato client ai miei clienti? – HDave

+0

Sì, certo. Tuttavia, per l'accesso di terze parti, devi/dovresti implementare il Controllo degli accessi sul lato server – Trung

+1

Poiché l'URL sopra riportato sembra morto, consulta il sito Google Code del progetto: https://code.google.com/p/gwt -syncproxy/ – JCricket

0

È possibile utilizzare uno strumento di test di carico convenzionale come Grinder per riprodurre le richieste di posta al servizio. Questo non è esattamente quello che stai chiedendo, ma potrebbe essere un modo migliore per eseguire test di carico sulla tua applicazione. Grinder può simulare molti utenti simultanei e così via.

1

Stai provando a confrontare la logica di business del servizio, o quanto bene GWT-RPC stesso esegue? Se si è per lo più preoccupati per quanto bene il codice backend esegue, si può solo creare un'istanza della classe che implementa il servizio direttamente:

MyServiceImpl impl = new MyServiceImpl(); 
impl.doSomething(); 

Se si vuole testare una maggiore fetta della pila, comprese le chiamate RPC, prendere un'occhiata here. Esiste una sezione chiamata "esecuzione del test in modalità web" con la seguente riga: "Per impostazione predefinita, i test eseguiti in modalità host vengono eseguiti come normale bytecode Java in una JVM". Quindi, se si utilizza l'installazione descritta, penso che i test vengano eseguiti in Java per impostazione predefinita. Anche su quella pagina sono informazioni sugli strumenti di profilazione incorporati di GWT.

+0

Voglio testare GWT-RPC e il meccanismo di spedizione personalizzato che abbiamo incorporato nel nostro server. Preferirei non dover utilizzare tutto lo scaffolding imposto dall'infrastruttura di test GWT, ma esaminerò gli strumenti di test GWT incorporati a cui fai riferimento. Grazie! – Eric