Quali opzioni ci sono per ottenere comunicazioni a bassa latenza tra due guerre in esecuzione nello stesso jetty-container?Comunicazione in corso tra guerre nello stesso contenitore
Fondamentalmente ho bisogno di chiamare un servizio in una guerra dall'altra, ma non posso permettermi il sovraccarico di chiamarlo come servizio web.
Poiché sono in esecuzione nella stessa JVM, spero di evitare l'utilizzo di RMI/JMS ecc., Ma non so quali altre opzioni sono disponibili?
Ho esaminato la comunicazione tra i servlet, ma poiché l'invocazione diretta del metodo è deprecated, non sembra essere la scelta giusta?
Ho trovato anche kyronet, ma ci sono soluzioni migliori poiché questo è nella stessa JVM?
Quello che sto cercando è qualcosa come Apache Camel VM Component (seda tra le applicazioni web), ma dal momento che solo una delle applicazioni utilizza Camel per questo non è un'opzione.
So che potrebbe essere necessario condividere alcuni DTO tra le due guerre, ma per favore non suggerisco tirando il servizio in una libreria condivisa, se questo era un'opzione non sarei questa domanda :)
Modifica:
Anche l'incorporazione di un contenitore EJB non è un'opzione.
Grazie per la tua risposta! Perché hai rinunciato al supporto JNDI di Jetty? Quindi hai implementato il tuo NamingManager, ma continui a utilizzare l'API Context o hai eliminato JNDI tutti insieme?Potresti indicarmi qualche risorsa che descrive come registrarla in modo problematico con Jetty? Oh, e infine, gli oggetti trasferiti attraverso questa soluzione sono passati per riferimento o serializzati? – ebaxt
Passiamo per "riferimento" in modo che le istanze degli oggetti siano direttamente indirizzabili. JNDI va bene: prova questo link per alcune informazioni [collegamento] (http://docs.codehaus.org/display/JETTY/JNDI). Il motivo per cui lo abbiamo abbandonato è stato duplice: volevamo più flessibilità (registri multipli con interfacce fisse, funzionalità di query, registrazione runtime) e un pacchetto più snello (JNDI è generico e fornisce funzionalità che non sono necessarie). L'implementazione del tuo registro richiede che tu gestisca correttamente la vita Webapp, che potrebbe non essere facile. –
Impressionante, grazie mille! – ebaxt