S
Sym
Gast
Hallo,
leider ist der AS 7.0.1 im EE-Bereich noch nicht ganz optimal. Ich nutze ein EAR mit einer EJB-Einheit. Diese EJBs kann ich im WAR leider nicht injecten, weil dies derzeit anscheinend nicht richtig unterstützt wird.
Nun möchte ich einen manuellen Lookup auf meine Bean machen.
Beim Deployment des EARs bekomme ich folgende Meldung:
Das sieht soweit gut aus.
Mein manueller Lookup:
Allerdings bekomme ich eine ClassCastException, weil der Proxy sich nicht casten lässt.
Mache ich einen anderen Lookup nach java:module/AuthenticationLocal bekomme ich eine NamingException.
Was könnte das Problem sein. Wie könnte ich das umgehen?
Danke fürs Lesen
leider ist der AS 7.0.1 im EE-Bereich noch nicht ganz optimal. Ich nutze ein EAR mit einer EJB-Einheit. Diese EJBs kann ich im WAR leider nicht injecten, weil dies derzeit anscheinend nicht richtig unterstützt wird.
Nun möchte ich einen manuellen Lookup auf meine Bean machen.
Code:
package de.larmic.ts.ejb.user.api;
public interface Authentication {
String authenticate(final String email, final String password);
}
Code:
@Stateless(mappedName = "ejb/AuthenticationLocal")
@Local(Authentication.class)
public class AuthenticationLocal implements Authentication {
@Override
public String authenticate(final String email, final String password) {
return "test@tsas-segen.de".equals(email) && "test".equals(password) ? "todo:securitytoken" : null;
}
}
Beim Deployment des EARs bekomme ich folgende Meldung:
Code:
INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-7) JNDI bindings for session bean named AuthenticationLocal in deployment unit subdeployment "larmic-ts-ejb-1.0-SNAPSHOT.jar" of deployment "larmic-ts-ear-1.0-SNAPSHOT.ear" are as follows:
java:global/larmic-ts-ear-1.0-SNAPSHOT/larmic-ts-ejb-1.0-SNAPSHOT/AuthenticationLocal!de.larmic.ts.ejb.user.api.Authentication
java:app/larmic-ts-ejb-1.0-SNAPSHOT/AuthenticationLocal!de.larmic.ts.ejb.user.api.Authentication
java:module/AuthenticationLocal!de.larmic.ts.ejb.user.api.Authentication
java:global/larmic-ts-ear-1.0-SNAPSHOT/larmic-ts-ejb-1.0-SNAPSHOT/AuthenticationLocal
java:app/larmic-ts-ejb-1.0-SNAPSHOT/AuthenticationLocal
java:module/AuthenticationLocal
Das sieht soweit gut aus.
Mein manueller Lookup:
Code:
try {
final Context ctx = new InitialContext();
final Object obj = ctx.lookup("java:app/larmic-ts-ejb-1.0-SNAPSHOT/AuthenticationLocal!de.larmic.ts.ejb.user.api.Authentication");
this.authentication = (Authentication) obj;
} catch (final NamingException e) {
throw new EJBException(e);
}
Allerdings bekomme ich eine ClassCastException, weil der Proxy sich nicht casten lässt.
Code:
class de.larmic.ts.ejb.user.api.Authentication$$$view3
Mache ich einen anderen Lookup nach java:module/AuthenticationLocal bekomme ich eine NamingException.
Was könnte das Problem sein. Wie könnte ich das umgehen?
Danke fürs Lesen