【发布时间】:2014-10-15 07:57:42
【问题描述】:
我有一个用于搜索的 EJB 类,
@Local(ILuceneEmployeeSearchManagerLocal.class)
@Remote(ILuceneEmployeeSearchManagerRemote.class)
public class LuceneEmployeeSearchManager implements ILuceneEmployeeSearchManagerLocal, ILuceneEmployeeSearchManagerRemote{
....
}
在同一个 EAR 中的一个 WAR 项目中有另一个类,它访问这个,
public class EmployeeAccessor {
private ILuceneEmployeeSearchManagerRemote searcher;
public EmployeeMstAccessor() {
Context ic = null;
try {
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "<WHAT_TO_PUT_HERE>");
props.put(Context.PROVIDER_URL, "iiop://127.0.0.1:9083");
ic = new InitialContext(props);
this.searcher = (ILuceneEmployeeSearchManagerRemote) ic
.lookup("<WHAT_TO_PUT_HERE?>");
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
....
}
当我使用 JNDI 执行本地查找时,这非常有效。由于一些 需求,现在有必要在多个 AP 中部署 EAR(在集群和非集群环境中)。此外,使用的应用程序服务器在 AP 之间将是相同的,但不一定是 Websphere,即所有 AP 都可能使用 JBoss/Websphere/Weblogic。
我的问题是有一种独立于实现的方式来查找和调用远程 EJB 吗?适用于 Websphere、Weblogic 或 JBoss 环境(同构环境)的东西。
我的第二个问题是假设 AP 服务器正在运行 Websphere(在集群或非集群环境中),假设我希望所有 AP 服务器中的 EmployeeAccessor 都使用部署在 AP01 中的 LuceneEmployeeSearchManager EJB(ip:x.x.x.x,端口: yy),我该如何配置呢?是否需要提供完整的 JNDI 名称(包括 websphere 的单元名称和节点名称)? INITIAL_CONTEXT_FACTORY 的正确值是多少?什么是正确的 JNDI 查找语法?
感谢您的帮助:)
【问题讨论】:
标签: jakarta-ee jboss ejb websphere weblogic