Portál AbcLinuxu, 10. května 2025 06:23
Zaobírám se J2EE. Mám nainstalovaného Tomcata a v něm OpenEJB jako plugin. Podle návodu na stránkách OpenEJB jsem chtěl vyzkoušet jednoduchou, konsolovou, klientskou aplikaci, která beany vypíše a zkusí získat jejich instance. Pro OpenEJB jako samostatný server to funguje, ale při OpenEJB v Tomcatu to padá s blíže těžko určitelnou chybou. Nedaří se mi nikde najít nic bližšího ani ohledně samotného JNDI, co by ozřejmovalo, čím chyba může vznikat.
Kód vypadá následovně:
Properties p = new Properties(); p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory"); p.put("java.naming.provider.url", "http://localhost:8080/openejb/ejb"); InitialContext c = new InitialContext(p); NamingEnumeration<NameClassPair> ne = c.list("/"); while (ne.hasMore()) { NameClassPair npc = ne.next(); System.out.println(npc.getName()); //nejprve nalezené jméno vypíše na konsoli c.lookup(npc.getName()); //a pak jej použije pro lookup }A takový je výstup:
. openejb SingletonRemoteImplRemote java.lang.NullPointerException at org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:188) at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:232) at javax.naming.InitialContext.lookup(InitialContext.java:392) at util.MainClass.main(MainClass.java:52)
Nejprve se úspěšně provede lookup pro položky tečka a openejb. Ovšem pro samotný bean, který tam je a je jinak z webových aplikací funkční, vyletí NullPointerException.
Na otázku zatím nikdo bohužel neodpověděl.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.