ClassCast javax.naming.Remote -> myClass

schnuffie

Erfahrenes Mitglied
Hallo Experten,

habe eine Stateless-Session-Bean, die im JBoss 5 deployed ist. Jetzt will ich von außen (aus dem JUnit-Test heraus) darauf zugreifen.

Code:
@Remote(OrganizerService.class)
@Stateless(name="OrganizerServiceBean")
public class OrganizerServiceBean implements OrganizerService {
//...
}
JNDI-View im JBoss:
HTML:
  +- OrganizerServiceBean (class: org.jnp.interfaces.NamingContext)
  |   +- remote-de.dbsystel.tid33.organizer.jmockit.service.OrganizerService (class: Proxy for: de.dbsystel.tid33.organizer.jmockit.service.OrganizerService)
  |   +- remote (class: Proxy for: de.dbsystel.tid33.organizer.jmockit.service.OrganizerService)
Im JUnit-Test greife ich darauf wie folgt zu:
Code:
        Properties env = new Properties();     

env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        env.setProperty(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
        Context ctx = new InitialContext(env);
        Object ref = ctx.lookup("OrganizerServiceBean/remote");
        System.out.println(ref);
        this.service = (OrganizerService) ref;//(OrganizerService)PortableRemoteObject.narrow(ref, OrganizerService.class);
        assertNotNull(service);
Egal ob mit oder ohne "PortableRemoteObject", immer kommt diese FM:
HTML:
java.lang.ClassCastException: javax.naming.Reference cannot be cast to de.dbsystel.tid33.organizer.jmockit.service.OrganizerService
    at integrationtest.de.dbsystel.tid33.organizer.jmockit.RemoteOrganizerServiceTest.setUp(RemoteOrganizerServiceTest.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at ...
In meiner Konsolenausgabe vermutet man jedoch, daß eigentlich das richtige Objekt enthalten ist:
HTML:
Reference Class Name: Proxy for: de.dbsystel.tid33.organizer.jmockit.service.OrganizerService
Type: ProxyFactoryKey
Content: ProxyFactory/OrganizerServiceBean/OrganizerServiceBean/remote
Type: EJB Container Name
Content: jboss.j2ee:jar=JMockItOrganizer-0.0.1-SNAPSHOT.jar,name=OrganizerServiceBean,service=EJB3
Type: Proxy Factory is Local
Content: false
Type: Remote Business Interface
Content: de.dbsystel.tid33.organizer.jmockit.service.OrganizerService
Type: Remoting Host URL
Content: socket://127.0.0.1:3873/
Wo liegt mein Fehler?:suspekt:
 
Zurück