2010-11-25 17 views
1

J'ai développé une application web. Je mets l'ID de session en hashtable. Je veux utiliser cette table de hachage dans ejb. Moyens Je veux utiliser cette session de connexion dans ejb.Transmettre la valeur de la classe d'action Java à ejb?

Est-ce possible? Comment puis je faire ça?

+0

est-il ejb 2, 3.0 ou ejb ejb 3.1? – Bozho

Répondre

0

Ce n'est pas impossible, mais vous ne devez pas le faire. Obtenez tout ce dont vous avez besoin à partir du HttpSession et envoyez-le à l'EJB en tant que paramètres de méthode. Par exemple:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 
    String foo = (String) request.getSession().getAttribute("foo"); 
    ejbService.doSomething(foo); 
} 

Passez les valeurs dont vous avez besoin en tant que paramètres pour les méthodes, à travers les couches de chaîne de votre application.

+0

Pourquoi ne peut-il pas utiliser le contexte de sécurité? Ne devrait pas être nécessaire de passer des paramètres supplémentaires. – djna

+0

premier merci pour nos années .. – water

+0

en fait mon application est le flux est ressemble – water

0

Les informations d'identification de sécurité sont transmises automatiquement de la servlet à l'EJB. Si votre utilisateur s'est authentifié sur le conteneur Web, vous n'avez pas besoin de travailler vous-même.

Dans la bean session obtenir le EDBContext comme décrit link text

@Resource 
private SessionContext sctx; 

puis appeler des méthodes telles que

sctx.getCallerPrincipal(); 
+0

Je ne suis pas sûr que ce soit pertinent. Je suppose qu'il veut passer n'importe quel paramètre de session http à l'ejb. En outre, il est bon de séparer le client (couche Web) et le service (couche ejb) plutôt que de les mélanger. – Bozho

+0

en fait mon application est flux est comme StrutsAction ---> Service ---> EJBClient -> BusinessLogic -> DataAccess je veux faire de la logique de la base de données dépend de la session de connexion donc j'ai stocké cette session en hashtable dans la classe Action . Et maintenant je veux cette hashtable dans ma logique bussiness (dans le côté d'ejb) ... – water

+0

oui vous êtes absolument ri8 .. et je suis aussi strictement ces règles mais comment puis-je réaliser ceci ......? – water