在尝试将我们的应用程序从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以下链接供您参考。
请提供3点意见: