当前位置: 首页 > 知识库问答 >
问题:

当我们在一个项目中绑定对象并从第二个项目中查找时,不会发生JNDI查找

林夕
2023-03-14

我有两个java项目,分别是Test1和Test2,在Test1项目中,我有一个servlet,其中包含以下代码

InitialContext initialContext=new InitialContext();
Class.forName("com.mysql.jdbc.Driver");
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/lntdb","root","root");
initialContext.bind("conn", connection);
response.getWriter().println("Bound to JNDI "+initialContext.lookup("conn"));`

上面的代码是将MYSQL数据库连接对象绑定到JNDI,名称为conn,然后从Test2项目中尝试检索连接对象Test2也有一个servlet,代码如下

InitialContext initialContext=new InitialContext();
response.getWriter().println(initialContext.lookup("java:comp/env/conn"));

但是我得到例外堆栈跟踪在下面

ontext.lookupNameNotFoundException:名称[conn]未在此上下文中绑定。无法找到[conn]。在ontext.java:158NamingCjavax.naming.(NamingContext.lookup)在com.lnt.NamingCervlet.do(NamingCervlet.java:19)在javax.servlet.http.NamingCervlet.service(NamingCervlet.java:621)在javax.servlet.http.NamingCervlet.service(NamingCervlet.java:722)在org.apache.naming.NamingContext.lookup(NamingContext.java:831)在org.apache.naming.NamingContext.lookup(NamingContext.java:168)在org.apache.naming.SelectorCjavax.naming.(SelectorCorg.apache.naming.)在ontext.lookup初始化ontext.java:820(未知源)在org.apache.naming.TestSontext.lookup获取(TestSontext.java:154)在org.apache.naming.HttpSontext.lookup(HttpSontext.java:831)在org.apache.naming.HttpSontext.lookup(HttpSontext.java:154)在org. apache. catalina. core。Application ationFilterChain. interalDoFilter(Application ationFilterChain. java: 305)在org. apache. catalina. core。Application ationFilterChain. doFilter(Application ationFilterChain. java: 210)在org. apache. catalinCoyoteAdapter. service(CoyoteAdapter. java: 407)位于org. apache. coyote. http11。抽象Http11Processor. Process(AbstractHttp11Processor. java: 1002)位于org. apache. coyote。抽象协议$AbstractConnectionHandler. Process(抽象协议. java: 585)位于org. apache. tomcat. util. net。JIoEndpoint$SocketProcessor. run(JIoEndpoint. java: 312)位于java. util. conflow。ThreadPoolExecator. runWorker(未知源)在java. lang。线程. run(未知源)'

您能告诉我的代码中有什么错误,以及为什么我无法检索连接对象吗

共有1个答案

拓拔嘉颖
2023-03-14

在这里,您没有使用两个应用程序通用的任何特定上下文。在JNDI中,所有应用程序都有单独的上下文,您在第一个应用程序中绑定的对象都会被绑定到第一个应用程序的上下文中,而这对于任何其他应用程序初始上下文都不可用。

您可以按照链接了解内部

 类似资料:
  • 问题内容: 问题答案: 您可以通过以下方式之一: 在依赖项中,您可以将其他项目添加到您的项目中。右键单击项目->属性-> Java构建路径->项目。在此处添加您的项目。 要么 将项目类放入jar,并将其添加到其他项目中 依赖关系应添加到类路径中 在运行时,请确保在两种情况下,都将引用项目的JAR文件添加到类路径中。

  • 我有一个JFace(带有底层SWT)。 树包含多行和多个级别。 我希望能够找到一个特定的树节点(通过文本标签比较),扩展到它的水平,并选择该项。 主要问题是我无法遍历,因为树以LAZY模式加载所有内容。 也许有一个选项可以通过搜索模型直接访问树项?

  • 问题内容: 是否可以通过元素的部分值单击selenium中的元素? 页面上有多个输入项目,我只需要选择一个带有特定字符串的项目即可。 例如: 如果您注意到快要结束了,这里有“ 1卧室豪华房”,“ 2卧室豪华房”和“ 1卧室总统房”。由于它是一个输入项目,因此没有可供我过滤的文本,但是我只需要选择一个特定的项目,例如2 Bedroom Deluxe。 我有什么可以做的: 还是其他?我目前正在使用be

  • 问题内容: 我有一个,我正在显示一些ID。我想捕获用户单击的ID并将其显示在上。 上面的代码为我提供了选定的值。但是此代码必须放置在button事件中,当我单击按钮时,它将获得JList值并将其分配给。 但是,我想做的是,只要用户单击其中的一项以实时更新。(无需单击按钮即可触发操作) 问题答案: 一个简单的示例如下所示,使用listselectionlistener

  • 本文向大家介绍程序查找在python中出售n个项目后剩余的项目数,包括了程序查找在python中出售n个项目后剩余的项目数的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数字列表,称为项目,另一个值为n。推销员在袋子里的物品带有随机ID。推销员可以从购物袋中删除多达n个物品。取出n次后,我们必须找到袋子中不同ID的最小数量。 因此,如果输入类似于items = [2,2,6,6] n =