远程访问tomcat JNDI树

时间:2018-03-21 11:59:18

标签: java tomcat websphere rmi tomcat8

在尝试将我们的应用程序从WAS 8.5.5移植到tomcat 8.0.33时,我们遇到了障碍,我们无法继续。因此请求你的输入。

以下是场景:我们有DataSourceManager类,它在上下文中查找数据源,如下所示。

Properties prop = new Properties();

prop.put("java.naming.factory.initial", "org.apache.naming.java.javaURLContextFactory");
prop.put("java.naming.provider.url", “rmi://localhost:1099”);

InitialContext context = new InitialContext(prop);
dataSource = (DataSource) context.lookup(“apl_datasource”);

当代码在Tomcat容器中运行时,前面的代码非常有效。但我们无法远程访问上下文,即从Tomcat容器外部访问。

但是当使用com.ibm.websphere.naming.WsnInitialContextFactory类时,这适用于WAS。

从shell脚本运行独立客户端时,在DataSourceManager类内部,我们对数据源进行上下文查找,并且查找失败并出现以下异常。

  

javax.naming.NameNotFoundException:名称   [java:comp / env / jdbc / apl_datasource]未绑定在此Context中。   无法找到[java:comp]。

似乎tomcat不支持对其JNDI树的远程访问,并且初始化的上下文为空。 Tomcat确实在上下文中具有数据源,但它只能在容器内运行的进程访问,并且不能在容器外部运行的进程访问。 PFB以下链接供您参考。

Tomcat: what is the init context params to use for making an external client connection to Tomcat 5.5 JNDI tree?

请提供3点意见:

  1. 此链接适用于tomcat 5.5,我们正在移植到tomcat 8.在tomcat8中更改了方案
  2. 是否有其他方法可以通过独立应用程序远程访问JNDI树。
  3. 提供者url中提到的rmi协议是否受tomcat支持,或者我们应该将其更改为其他协议。

0 个答案:

没有答案