Portál AbcLinuxu, 26. října 2025 23:57
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.