Java 命名和目录(JNDI)-使用JNDI的陷阱是什么

Java 命名和目录(JNDI)-使用JNDI的陷阱是什么,java,jndi,Java,Jndi,命名和目录(JNDI)-使用JNDI的陷阱是什么 缺乏文件 漫不经心的API 除了应用服务器,还没有发现任何人在使用它 有几个教程介绍如何使用JNDI,但大多数情况下,当出现问题时,您会陷入困境。该实现还不支持有用的错误消息。如果找不到密钥,那么您只需获取最里面的密钥名—缺少指向该密钥的路径 也没有办法导航JNDI层次结构。当您无法导航时,有一个包含父级和子级的层次结构有什么意义 那么java:comp/env呢?为什么在那里?我什么时候可以省略它?我什么时候用它?有人曾经添加过一个不从 jav

命名和目录(JNDI)-使用JNDI的陷阱是什么

  • 缺乏文件
  • 漫不经心的API
  • 除了应用服务器,还没有发现任何人在使用它
  • 有几个教程介绍如何使用JNDI,但大多数情况下,当出现问题时,您会陷入困境。该实现还不支持有用的错误消息。如果找不到密钥,那么您只需获取最里面的密钥名—缺少指向该密钥的路径

    也没有办法导航JNDI层次结构。当您无法导航时,有一个包含父级和子级的层次结构有什么意义


    那么java:comp/env呢?为什么在那里?我什么时候可以省略它?我什么时候用它?有人曾经添加过一个不从<代码> java开始:?< /p> < p>问题有点模糊,但是这里有一些要考虑的点,这与JNDI有关。
  • JNDI的好处是对象创建与对象查找分离
  • JDNI中的直接查找妨碍了可测试性,如果可能,首选注入
  • 如果仍然使用直接查找,则需要自己或通过使用实现来模拟JNDI
  • 若你们在应用程序中使用类加载器,请注意它的问题。服务器
  • 如果您计划实现自己的对象工厂(上下文、环境等),则中使用的参数在某种程度上是模糊的
  • 每个JVM都有自己的JNDI。当客户端查找远程EJB时,会使用一个特殊的工厂返回对EJB的远程引用,但JNDI本身是本地的。(注意,存在集群JNDI实现,但我没有这方面的经验)
  • EJB的命名将取决于应用程序。服务器
  • 全局和局部JNDI总是一个混乱的来源
  • 我从未见过有人搜索JNDI目录,这是查找的唯一示例
  • 我使用JDNI在Glassfish中实现了自定义资源,这很好。但我发现JNDI经常引起混淆