EJOE 0.4.0: erster Bug :-( und Workaround

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.

Bookmark and Share
1 Comment
Juni 7, 2007 in EJOE

One Response

Leave a Reply

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>