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.
JNDI-View im JBoss:
Im JUnit-Test greife ich darauf wie folgt zu:
Egal ob mit oder ohne "PortableRemoteObject", immer kommt diese FM:
In meiner Konsolenausgabe vermutet man jedoch, daß eigentlich das richtige Objekt enthalten ist:
Wo liegt mein Fehler?:suspekt:
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 {
//...
}
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)
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);
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 ...
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/