If reflection is to slow, unsafe or just inappropriate then a custom ServerHandler could be the solution.
EJOE makes only two demands on a custom ServerHandler:
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; }