2016-04-18 6 views
0

Unser Projekt ist ein traditionelles Projekt, das RMI verwendet, um die Kommunikation zwischen einem Server und einem Client (mit Swing) zu tun.RMI zu HTTP-Protokoll

Kürzlich wollen wir Protokoll von RMI auf HTTP (für die Firewall Sicherheit) ohne zu viel ursprünglichen Code zu ändern (halten ursprünglichen Server-Logik und Swing-GUI) ändern.

Gibt es einen guten und ausgereiften Weg, den Übergang zu machen? Vielen Dank.

+0

Haben Sie Ihren Code mit GoF und/oder Java Core EE Patterns erstellt? Wenn Sie eine Business Delegate Façade haben, können Sie die Service-Implementierung (RMI) durch eine HTTP/REST-Implementierung ersetzen. –

+0

Nein, verwenden Sie einfach den Java-Core ohne EE oder einen Container. – JasonS

+0

Haben Sie eine Java-Schnittstelle geschrieben, um die Dienste zu definieren? Das würde es Ihnen ermöglichen, es mit minimalem Codierungsaufwand zu ersetzen. Ein "extremer" Weg wäre es, Java Proxies zu verwenden, um die Laufzeit-Implementierung durch die neue zu ersetzen. (komplex und nicht zu einfach zu testen) –

Antwort

2

Sie können Ihren Code unverändert mit dem RMI/HTTP-Tunneling verwenden, das in RMI integriert ist. Sie installieren einfach das RMI-CGI-Servlet, das mit dem Beispielcode ausgeliefert wird, konfigurieren es entsprechend und Bob ist Ihre Tante.

Siehe documentation. Danke an @JoopEggen für den Link.

+0

Ich kenne diesen Tunnel nicht sehr gut, haben Sie eine Probe? Schätze es wirklich. @EJP – JasonS