java - 导入的java文件没有被调用

标签 java debugging jndi

我遇到问题,因为实际导入的 java 文件没有被调用。请看一下我的代码:-

    import javax.naming.Context;
    import javax.naming.InitialContext;
    .....
   public class ABC{
   .....
  1.      Context lContext = null;
  2.        ObjectDataSourceFactory lSource = null;
  3.      try
  4.       {
  5.           lContext = new InitialContext();
  6.           lSource = ((ObjectDataSourceFactory)lContext.lookup(....));
     }
        catch (Exception e)
    {

    }

我在这里面临的问题是:当流程控制进入第6行时。它从“SelectorContext.java”调用“查找方法”,而不是从“InitialContext.java”调用“查找方法”,我在以下命令的帮助下找到了这一点Eclipse 中的 Debug模式。因此,它无法找到正确的 JNDI 并给出异常。 供引用.. 我的代码在Tomcat6上运行。 我已经从 JRE1.6 和 JDK 设置了 jar 文件的类路径。

有人可以建议我吗 - 如果我没记错的话,我如何知道这个“SelectorContext.java”是从哪个 JAR 中调用的,以及如何让它查看 RT.JAR 中存在的 InitialContext.class?

最佳答案

你的理解不正确。 SelectorContext是tomcat的JNDI实现之一。

可以选择通过将 java.naming.factory.initial 设置为系统变量来使用外部 JNDI 上下文。这是由 Tomcat (javaURLContextFactory) 设置的,以提供它自己的 JNDI 服务。

当你调用new InitialContext()时,JVM会查看是否有用户提供的命名工厂,如果可用,JVM会调用initialFactory.getInitialContext来获取自定义JNDI实现并将其设为默认值,并且对上下文的所有方法调用都是反过来路由到自定义实现。

在您的情况下,调用 SelectorContext 是正确的,请查看您是否具有在 JNDI 中拥有资源所需的配置。

关于java - 导入的java文件没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407020/

相关文章:

java - Java 中的默认原始值 - 内存分配?

android - IBM Worklight - 如何在 Android 中启用 WebView 调试?

java - 以编程方式为 Spring 创建 JNDI 数据源

java - 在运行时使用自定义变量查找数据源

jndi - 如何使用 JNDI 从 websphere liberty 访问 AWS SQS

java - LWJGL - 如何创建关闭应用程序的按钮

java - 如何使用 PDFBox 的 PDFPagePanel 查看 PDF 文档

java - 从文本中提取产品实体

debugging - 如何告诉 Mathematica 在出现调试错误时退出

javascript - 抑制 jslint 中的 "Expected ' == =' and instead saw ' = ='."错误