хочу достать Stateless Session Bean через Remote Interface. сам Stateless Bean выглядит сл. образом: | Код | @Stateless @LocalBinding(jndiBinding = "StaticDataParserServiceLocale") @RemoteBinding(jndiBinding = "StaticDataParserServiceRemote") public class StaticDataParserService implements IStaticDataParserServiceLocal, IStaticDataParserServiceRemote { ...
|
сам код Standalone приложения: | Код | package de.comsoft.cadas_ims.parsing_with_logic;
import java.util.Properties;
import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; import javax.naming.NamingException;
import de.comsoft.cadas_ims.services.parser.IStaticDataParserService;
public class HelloTest {
IStaticDataParserService hellobean;
public HelloTest() { try { final Context jndiContext = getInitialContext();
// final InitialContext ctx = getInitialContext(); // System.out.println("Liste der Namen im JNDI-Context:"); // showJndiContext(ctx, "", ""); // ctx.close();
System.out.println(jndiContext.lookup("java:StaticDataParserServiceRemote")); // final NamingEnumeration ne = // jndiContext.listBindings(StaticDataParserService.getLookupName()); // // while(ne.hasMore()) { // System.out.println(ne.next()); // } // // // System.out.println(jndiContext.lookup("java:comp/env/ejb/" + // StaticDataParserService.getLookupName()));
// final IStaticDataParserServiceLocal staticDataParser = // (IStaticDataParserServiceLocal) // NameResolver.lookupSessBean(StaticDataParserService.getLookupName());
// final Object ref = // jndiContext.lookup("java:comp/env/ejb/HelloEJB3"); // hellobean = (IStaticDataParserService) ref; } catch (final javax.naming.NamingException ne) { ne.printStackTrace(); } }
public static void showJndiContext(final InitialContext pCtx, final String pName, final String pSpace) {
try { final NamingEnumeration en = pCtx.list(pName); while (en.hasMoreElements()) { final String delim = (null != pName && 0 < pName.length()) ? "/" : ""; final NameClassPair nc = (NameClassPair) en.next(); System.out.println(pSpace + pName + delim + nc); if (40 > pSpace.length()) { showJndiContext(pCtx, nc.getName(), " " + pSpace); } } } catch (final javax.naming.NamingException ex) { ex.printStackTrace(); } }
protected void sayHello() { System.out.println("***" + hellobean.sayHello()); }
public static void main(final String[] args) { final HelloTest helloClient = new HelloTest(); // helloClient.sayHello(); }
/** * This is vender dependency. * * @return initial context. * @throws javax.naming.NamingException */ public static InitialContext getInitialContext() throws NamingException { final Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); p.put(Context.PROVIDER_URL, "jnp://localhost:1099"); return new InitialContext(p); }
}
|
ошибка: | Код | javax.naming.NameNotFoundException: StaticDataParserServiceRemote not bound at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) at org.jnp.server.NamingServer.getObject(NamingServer.java:543) at org.jnp.server.NamingServer.lookup(NamingServer.java:296) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) at javax.naming.InitialContext.lookup(InitialContext.java:351) at de.comsoft.cadas_ims.parsing_with_logic.HelloTest.<init>(HelloTest.java:26) at de.comsoft.cadas_ims.parsing_with_logic.HelloTest.main(HelloTest.java:72)
|
не могу найти в jmx-console jndi имя моего StaticDataParserService бина.. Бин задеплоился и работает через локальный интерфейс.. только вот lookup там написан на нашем сервере руками, а люди его написавшие придут лишь завтра.. где или как можно найти jndi имя моего бина? Это сообщение отредактировал(а) polosatij - 11.1.2009, 13:29
|