Van egy alkalmazásom a localhostnál a JBoss 6.0 AS rendszeren. Ennek az alkalmazásnak van egy távoli EJB komponense, az példaEJB. Most megpróbálok kódolni egy egyszerű kliens alkalmazást, amely az ExampleEJB-t használja. Ez az ügyfélalkalmazás egyetlen alkalmazáskiszolgálón sem lesz telepítve. Az ötlet egy egyszerű Java SE kliensprogram kódolása. A következőt írtam a kereséshez:
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,"localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ic = new InitialContext(env);
Ezen a ponton két megközelítést próbáltam ki. Az első az volt, hogy közvetlen keresést végeztem, amint azt a Java EE 6 Tutorial példája is mutatja (http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html):
ExampleEJB exampleEJB = (ExampleEJB) ic.lookup("java:global/myApp/ExampleEJB");
A második kísérlet az volt, hogy megpróbáljuk megszerezni a JNDI környezeti környezetet, majd megszerezni a kívánt babot ebből a környezetből:
Context envContext = (Context)ic.lookup("java:/comp/env");
envContext.lookup(...)
A probléma az, hogy a következő kivételeket kapom: "javax.naming.NameNotFoundException: global not bound" és "javax.naming.NameNotFoundException: comp not bound". Nem tudom a kívánt módon végrehajtani a keresést.
Van valakinek tippje?