J'essaie d'accéder à un EJB3 à partir d'une application client Java EE, mais je continue d'obtenir uniquement des échecs de recherche. L'application client s'exécute dans le conteneur de client d'application Java EE.Échec de la recherche JNDI EJB3 dans le client d'application Java EE
Mon application Java Core 'CoreServer' expose un certain nombre de beans avec des interfaces distantes. Je n'ai aucun problème à y accéder depuis une application Web déployée sur le même Glassfish v3.0.1.
Maintenant, je suis en train d'y accéder à partir d'un client application:
public class Main {
public static void main(String[] args) {
CampaignControllerRemote bean = null;
try {
InitialContext ctx = new InitialContext();
bean = (CampaignControllerRemote) ctx.lookup("java:global/CoreServer/CampaignController");
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (bean != null) {
Campaign campaign = bean.get(361);
if (campaign != null) {
System.out.println("Got "+ campaign);
}
}
}
}
Quand je lance le déployer sur GlassFish et l'exécuter à partir du appclient, je reçois cette erreur:
Lookup failed for 'java:global/CoreServer/CampaignController' in SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700
Cependant, c'est exactement le même nom JNDI que j'utilise lorsque je recherche le bean à partir de WebApplication (via SessionContext, pas InitialContext - est-ce important?). Aussi, quand je déploie 'CoreServer', Glassfish rapporte:
Portable JNDI names for EJB CampaignController : [java:global/CoreServer/CampaignController!mvs.api.CampaignControllerRemote, java:global/CoreServer/CampaignController]
Glassfish-specific (Non-portable) JNDI names for EJB CampaignController : [mvs.api.CampaignControllerRemote, mvs.api.CampaignControllerRemote#mvs.api.CampaignControllerRemote]
J'ai essayé tous les quatre noms, aucun travaillé. L'application est-elle incapable d'accéder aux beans avec (seulement) des interfaces distantes?
Je recommande que vous passez à l'aide de l'injection de dépendance pour les cas d'utilisation ... (votre application web et application client). – vkraemer
Comment la recherche CORBA est-elle effectuée avec l'injection de dépendances sur le client de l'application? Peux-tu être plus précis? – Thufir