Anstelle des direkten Umgangs mit EJClient und RemoteRequest können auch dynamische Proxies benutzt werden. Auf diesem Weg "fühlen" sich die Remote-Methoden-Aufrufe an wie lokale Methodenaufrufe. Dynamische Proxies sind durchaus auch ein eleganter Weg um eine Zwischenschicht zur Abstraktion der verwendeten Remote-Technologie einzuführen und somit eine strenge Bindung zu vermeiden.
EJOE beinhaltet einen Proxygenerator, welcher in der Lage ist für EJOEs Remote Reflection dynamische Proxies zur Laufzeit zu erstellen. Der Proxygenerator verbirgt sich in der Klasse de.netseeker.ejoe.RemotingService und ist in der Lage über entsprechende Factory-Methoden dynamische Proxies für synchrone oder asynchrone Requests zu erzeugen.
import de.netseeker.ejoe.EJClient; import de.netseeker.ejoe.RemotingService; import de.netseeker.ejoe.test.service.ISimpleTypes; import de.netseeker.ejoe.test.service.SimpleTypes; ... EJClient client = new EJClient(... ); //SimpleTypes implementiert ISimpleTypes und stellt u.a. eine Implementation //der Signatur #getString(String) bereit ISimpleTypes service = (ISimpleTypes) RemotingService.createService( SimpleTypes.class.getName(), ISimpleTypes.class, client ); String str = service.getString( "abcd" ); ...