Wenn Reflection zu langsam, unsicher oder schlichtweg unpassend ist, weil beispielsweise zwischen Empfang einer Client-Anfrage durch EJOE und der Verarbeitung durch die externe Geschäftslogik noch Zwischenschritte (Prüfungen, zusätzliche Logik etc.) durchzuführen sind, dann bietet sich die Implementierung eines eigenen ServerHandlers an.
EJOE stellt an eigene ServerHandler lediglich zwei Anforderungen:
package de.netseeker.ejoe.handler; /** * Simple interface defining the entry point for all server handlers. * Server handlers are the working horses which the caller must implement. * Server handlers take the transported input objects send by the client * application and return none, one or more return values. * * @author netseeker aka Michael Manske * @since 0.3.0 */ public interface ServerHandler { /** * Handles a client request * * @param obj The input object transported by EJOE * @return null or a valid return value. If you want return custom datatypes, * eg. Your own beans and do not want (or not be able) to deploy the classes of * these datatypes on the client, you can turn on EJOEs remote classloading feature. */ public Object handle( Object obj ) throws Exception; }