是怎么通过JNDI找到对象的呢
时间: 2024-03-30 18:38:52 浏览: 21
在Java中,JNDI(Java Naming and Directory Interface)是用于访问命名和目录服务的API。JNDI可以将命名和目录服务抽象为一个统一的命名空间,并提供一种标准的方式来查找、绑定和解除绑定对象。
当应用程序需要获取JNDI中的对象时,它可以执行以下步骤:
1. 创建一个JNDI上下文环境(Context),这个上下文环境是通过配置文件或者代码创建的,用于连接到JNDI服务提供者。
2. 通过上下文环境的lookup()方法查找JNDI中的对象,lookup()方法接收一个字符串参数,这个字符串参数表示要查找的对象的名称,例如:"java:comp/env/myDataSource"。
3. 如果JNDI中存在对应名称的对象,lookup()方法将返回该对象的引用,应用程序可以使用这个引用操作对象。
4. 当应用程序不再需要JNDI中的对象时,可以通过unbind()方法将其解除绑定。
需要注意的是,JNDI服务提供者的具体实现是不同的,因此在使用JNDI时需要根据具体的服务提供者进行配置和使用。
相关问题
DEBUG org.springframework.jndi.JndiLocatorDelegate - Converted JNDI name [java:comp/env/file.path] not found
这个调试日志显示了尝试将 JNDI 名称 "java:comp/env/file.path" 转换为 JNDI 对象时未找到该名称。这可能是由于以下原因之一引起的:
1. JNDI 名称错误:请确保 JNDI 名称 "java:comp/env/file.path" 是正确的,并且与你在代码中使用的名称一致。检查是否存在拼写错误或路径错误。
2. 没有正确配置 JNDI 资源:你需要在应用服务器或容器中正确配置 JNDI 资源。确保正确地设置了 "file.path" 资源,并且它可以在 JNDI 上下文中访问到。
3. 缺少资源定义:如果 "file.path" 是自定义的资源,你需要在应用服务器或容器的配置文件中明确定义该资源。确保已经定义了正确的资源类型、名称和路径。
请检查以上原因并进行相应的修正,以解决该问题。如果仍然遇到困难,请提供更多的上下文信息,以便我能够更好地帮助你解决问题。
关于配置Tomcat数据源说法错误的是()。 (选择一项) A: 配置Tomcat的context.xml文件 B:配置Web项目的web.xml文件 c: 添加动到Tomcat的bin目录下 D: 编写代码,使用lookup()方法获得数据源对象
引用\[1\]:首先,需要为数据源配置一个JNDI资源。我们的数据源JNDI资源应该定义在context元素中。在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。我们当然推荐把应用需要的JNDI资源配置在context.xml文件中,而不是server.xml文件中。\[1\]
引用\[2\]:在tomcat 5.5之前 Context体现在/conf/server.xml中的Host里的<Context>元素,它由Context接口定义。每个<Context元素代表了运行在虚拟主机上的单个Web应用 在tomcat 5.5之后 不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。\[2\]
引用\[3\]:Tomcat6的服务器配置文件放在${tomcat6}/conf目录底下。我们可以在这里找到server.xml和context.xml。当然,还有其他一些资源文件。但是在在本文中我们只用得上这两个,其他的就不介绍了。\[3\]
问题:关于配置Tomcat数据源说法错误的是()。
(选择一项)
A: 配置Tomcat的context.xml文件
B:配置Web项目的web.xml文件
c: 添加动到Tomcat的bin目录下
D: 编写代码,使用lookup()方法获得数据源对象
回答: 错误的说法是C: 添加动到Tomcat的bin目录下。配置Tomcat的数据源需要在Tomcat的context.xml文件中进行配置,而不是将其添加到Tomcat的bin目录下。\[1\]\[2\]
#### 引用[.reference_title]
- *1* *3* [在tomcat下context.xml中配置各种数据库连接池](https://blog.csdn.net/weixin_35070925/article/details/114491823)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [tomcat配置文件context.xml和server.xml分析](https://blog.csdn.net/jiongxian1/article/details/109244900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)