So, jetzt liegt auch für das letzte EJOE-Release die erste Bug-Meldung vor und dann auch noch gleich noch ein richtig böser Fehler:
Sobald in 0.4.0 auf dem Server das Remote-Classloading aktiviert wird, tritt u.U. eine ClassCastException auf:
package de.netseeker.ejoe.cltest;
import java.io.IOException;
import de.netseeker.ejoe.EJServer;
import de.netseeker.ejoe.handler.DefaultRemotingHandler;
/**
* @author netseeker aka Michael Manske
*/
public class RemotingServerStarter
{
public static void main( String[] args )
{
//Es ist vollkommen egal, welcher ServerHandler verwendet wird
//Lediglich bei Verwendung eines de.netseeker.ejoe.handler.ServerHandlerMapping funktioniert es
EJServer server = new EJServer( new DefaultRemotingHandler() );
server.enableRemoteClassLoading( true );
try
{
server.start();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
Obiger Serverstart resultiert in:
Exception in thread "main" java.lang.ClassCastException: de.netseeker.ejoe.handler.DefaultRemotingHandler at de.netseeker.ejoe.EJServer.enableRemoteClassLoading(EJServer.java:485) at de.netseeker.ejoe.cltest.RemotingServerStarter.main(RemotingServerStarter.java:28)
Der Fehler ist bereits im Tracker mit der ID 1733079 erfasst.
Als Workaround schafft hier bis zum Release von 0.4.1 die Verwendung eines ServerHandlerMappings (de.netseeker.ejoe.handler.ServerHandlerMapping) Abhilfe:
package de.netseeker.ejoe.cltest;
import java.io.IOException;
import de.netseeker.ejoe.EJServer;
import de.netseeker.ejoe.handler.DefaultRemotingHandler;
import de.netseeker.ejoe.handler.ServerHandlerMapping;
/**
* @author netseeker aka Michael Manske
*/
public class RemotingServerStarter
{
public static void main( String[] args )
{
ServerHandlerMapping mapping = new ServerHandlerMapping();
mapping.setDefaultHandler( new DefaultRemotingHandler() );
EJServer server = new EJServer( mapping );
server.enableRemoteClassLoading( true );
try
{
server.start();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
EJOE ist ein in Java programmiertes Remoting Framework. Es besteht aus Client- und Serverkomponente und unterstützt den Datenaustausch zwischen Client und Server via austauschbaren (De-)Serialisierungsmechanismen, z.B. XStream, Castor oder Standard Java Beans Serialisierung. Es handelt sich dabei um eine hochperformante und skalierbare Implementierung des Request-Process-Response Patterns. EJOE kann je nach Verwendung den Kategorien Middleware, Remoting Framework, I/O Framework und Object Request Broker zugeordnet werden.
Mehr Informationen zu EJOE inklusive einem umfangreichem, deutschen Handbuch stehen auf der Projektseite http://ejoe.sourceforge.net/de/ bereit.
Unsteter Gedankenfluss aus dem Leben eines Projektleiters, Entwicklers, Freizeitautors, eBook-Enthusiasten und last but not least sächsischen Asylschwaben.