作为Consuming an EJB问题的后记。我已经在JBOSS AS6.0上创建了一个ejb,并使用以下代码在java客户端中使用它。
private ServiceLocator(String host, String principal, String creadentials) throws NamingException {
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
env.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
env.put(Context.PROVIDER_URL, "jnp://" + host);
System.out.println("jnp://" + host);
env.put(Context.SECURITY_PRINCIPAL, principal);
env.put(Context.SECURITY_CREDENTIALS, creadentials);
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.security.jndi.JndiLoginInitialContextFactory");
InitialContext ct = new InitialContext(env);
cachedStructSpeechRemote = (StructSpeechRemote) ct.lookup("eCWServicesEAR/StructSpeechService/remote-com.ecw.ejb.StructSpeechRemote");
}消费者使用JBoss AS6.0的客户端文件夹中的JBOSS-all-client.jar。我不能在JDK1.4中使用相同的代码,因为jar与JDK1.4不兼容。我还试图从较旧的EJB发行版中获取jar文件,但它不适用于较新的服务器发行版:(有没有一种方法可以编写一个独立于JBoss版本的EJB使用者(也可以是独立于供应商的!)并且可以在从1.4到6的所有JDK中工作吗?
发布于 2011-08-19 16:54:47
在您的示例中,我会将JBoss上的EJB公开为web服务,以便能够从任何jvm调用它。否则,您可以尝试在此处找到更多信息:https://issues.jboss.org/browse/EJBTHREE-1029?focusedCommentId=12371962
https://stackoverflow.com/questions/7117473
复制相似问题