java:comp/env/ 的作用是什么?

2023-12-09

我只是花了太多时间试图找出连接某些 JNDI 工厂 bean 时出现的一些错误。问题结果是,而不是这个......

<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>

其实这个是我写的...

<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="jdbc/loc"/>
</bean>

我推断java:comp/env/也许引用了一些环境变量并使其最终能够查看我的上下文文件。唯一的区别是java:comp/env/。从专家嘴里说出来,那有什么作用呢?

如果没有java:comp/env/值中的前缀,我会收到一条错误消息“名称 jdbc 在此上下文中未绑定”.


Quoting https://web.archive.org/web/20140227201242/http://v1.dione.zcu.cz/java/docs/jndi-1.2/tutorial/beyond/misc/policy.html

在命名空间的根上下文中 是一个名为“comp”的绑定, 绑定到保留的子树 用于组件相关的绑定。这 名称“comp”是组件的缩写。 没有其他绑定 根上下文。然而,根 上下文是为未来保留的 扩大政策范围,特别是 用于命名未绑定的资源 对于组件本身,但对于其他组件 实体类型,例如用户或 部门。例如,未来 策略可能允许您命名用户 和组织/部门通过使用 诸如“java:user/alice”之类的名称和 “java:org/engineering”。

在“comp”上下文中,有两个 绑定:“env”和“UserTransaction”。 名称“env”绑定到子树 为组件保留的 与环境相关的绑定,如 由其部署描述符定义。 “env”是环境的缩写。这 J2EE推荐(但不要求) “env”的以下结构 命名空间。

因此,您从 spring 或例如 tomcat 上下文描述符进行的绑定默认位于 java:comp/env/ 下

例如,如果您的配置是:

<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="foo"/>
</bean>

然后您可以使用以下方式直接访问它:

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/foo");

或者您可以执行中间步骤,这样您就不必为检索的每个资源指定“java:comp/env”:

Context ctx = new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("foo");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java:comp/env/ 的作用是什么? 的相关文章

随机推荐

  • 用模板专门化一个模板

    我有一个 免费 函数模板 如下所示 template
  • 确认值未从甜蜜警报服务返回

    已经创建了甜蜜的警报作为单独的服务 我将其注入到我的服务中 这就是贴心的提醒服务 function use strict angular module app services factory SweetAlert SweetAlertSe
  • 在 PyCharm 中添加代码模板 - 可能吗?

    我想向 PyCharm 添加新的代码模板 片段 例如我想扩展lw to log write Line here is sould be cursor after code completition from snippet 就像是https
  • R Xgboost:如何在 Windows 10 上编译具有 GPU 支持的 xgboost

    我按照此链接中提供的说明进行操作 如何在python windows平台 中安装xgboost包 and https xgboost readthedocs io en latest build html installing r pack
  • 单击锚点应该执行 javascript 而不是转到新页面

    我有一个 HTML 锚点 单击该锚点会使 div 向上或向下滑动 我称之为 JQuery 的 slideToggle 功能 我的问题 当我单击该链接时 它不会执行代码 而是会转到一个新页面 其中 url 是 javascript 代码 在我
  • app.config 文件和 XYZ.settings 文件有什么区别?

    我实际上正处于 NET 相关内容的学习阶段 我正在探索如何保存应用程序 我最终编写了自己的类 它将设置保存在 XML 文件中 然后我发现 NET 本身支持保存应用程序设置 但我找到了两种方法可以做到这一点 当我在 Visual Studio
  • 为什么我收到“密钥凭证开始日期无效。”尝试创建 Active Directory 服务主体

    我一直在尝试整合一系列围绕创建和刷新 AD 服务主体和应用程序的操作 我遇到问题的流程是 从 Azure Key Vault 获取证书 使用证书进行身份验证创建服务主体 和应用程序 PS gt Get AzureKeyVaultCertif
  • Jquery 可拖动 + 置于前面

    我有一个带有多个聊天 DIV 的窗口 用户可以在其中与不同的人聊天 目前 聊天 DIV 可以打开并移动 但我看不到将当前选择的 DIV 设置在前面 例如 当您将鼠标放在 DIV 上时 它会进入前台 HTML div class chatMe
  • 将文件上传到 HTML 表单并提交之间会发生什么?

    文件上传到 HTML 表单后 提交之前会发生什么情况 我已将简历上传到该网站https studyhut com employment 然后点击红色X将其删除 但我想确保它确实被删除了 检查 选择文件 按钮的元素 我发现它的 HTML 是
  • 将键值对拆分为 Google BigQuery 中的列

    我对 Google BigQuery 还很陌生 而且确实很挣扎 我的表有以下内容 order id line items 123 id 1 qy 1 sum 1 00 id 2 qy 6 sum 4 50 456 id 1 qy 3 sum
  • Web 应用程序会话与令牌的安全性

    背景 我正在开发一个网络应用程序 计划使用spring mvc和春季安全 我的计划是使用基于表单的身份验证 其中 spring security 验证凭据并设置会话JSESSIONID以便后续请求将根据请求标头中存在的 cookie 进行身
  • 如何删除 HTML 标题元素之间的行距?

    我有这个代码 h1 Something h1 h3 Somethings h3 h3 Some other things h3 我认为 HTML 会自动在它们之间添加 1 行间距 我希望它们没有 1 行间距 我的意思是逐行 而不是行间距 我
  • 如何在 Windows 服务器上安装 mongrel/rails 的 service_wrapper?

    我接到了一项令人不快的任务 要安装我在 Windows Server 2008 上编写的 Rails 3 应用程序 这绝对不是我的选择 承诺提供 Linux 服务器 但 I T 在最后一刻撤回了 所以请不要建议进行更改 环境作为解决方案 我
  • Python3 urllib图像检索

    我正在编写一个小的 Python 脚本来通过谷歌图像抓取图像 我已经成功地将我想要的图像的网址放在一个方便的列表中 现在 我只需要抓住它们 对于每个图像网址我这样做 print Retrieving 0 format sFinalImage
  • 您无权访问此服务器上的 /wp-admin/post.php。 Wordpress

    该问题已编辑 3 次 现在包含 VPS 和 Centos 标签 因为我认为我的 VPS 配置文件有问题 好的 首先 我已经浏览了这里提出的所有问题 但我遇到的问题没有答案 问题是 当我尝试复制 粘贴并更新或创建 WP 帖子时 我收到以下警告
  • Java servlet 不写入响应字节

    我运行了一些 Java servlet 3 x Tomcat 8 用于生成和返回 PDF 文档 我对它们中的任何一个都没有遇到过任何问题 我最近编写了一个新的 servlet 来创建和返回 PDF 文档 这个新的 servlet 使用完全一
  • 检查term是否存在并创建带有规则的节点

    我实际上有两个关于 Drupal 7 和规则的问题 如何检查某个术语是否存在规则 如何新建一个节点并用规则转发到节点条目 让我先概述一下场景 然后再详细解释 我目前正在创建一个简单的库存程序 与条形码扫描仪一起使用 条形码存储在分类树中 我
  • 来自字符串变量的 React Native 渲染组件

    或者也许问题应该是 如何将字符串转换为 JSX 无论如何 我试图对我的 React Native 应用程序进行性能黑客攻击 这需要我从字符串变量渲染 React Native 组件 例如 let item
  • Chartjs如何在动画后应用

    尝试扩展图表 以便我可以绘制线条直到数据点 但这是在默认动画之前发生的 如果之后涂抹的话会看起来更光滑 我已经完成了大部分工作 但是我如何在图表动画之后应用它 var originalLineDraw Chart controllers l
  • java:comp/env/ 的作用是什么?

    我只是花了太多时间试图找出连接某些 JNDI 工厂 bean 时出现的一些错误 问题结果是 而不是这个