- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 J2EE webapp,用于上传文件,然后由数据库过程处理该文件。因为我们不希望 webapp 必须等到数据库过程完成,所以它在不同的线程中执行。
运行在独立线程中的进程需要获取并关闭自己的连接。 Web 应用程序通常使用 ServiceLocator 查找数据源 jndi 名称,后者又从应用程序上下文中查找(jndi 名称的查找键定义为类常量),但对于使用 ServiceLocator 查找 jndi 名称的单独线程失败。为了解决这个问题,我们使用 jndi 名称作为类常量,以便线程可以直接查找数据源。
这意味着数据源的 jndi 名称现在对于应用程序是固定的,我们不能再通过修改 web.xml 将相同的应用程序部署在同一容器中但具有不同的数据源。
围绕此问题的行业最佳做法是什么? jndi 名称应该是可配置的还是可以为应用程序修复它?有没有人实现了一个可配置的数据源 jndi 名称解决方案,它既可以在 webapp 中使用,也可以被容器中的其他线程使用?
最佳答案
有关最佳实践,The role of JNDI in J2EE (由 Kirk Pepperdine 合着)是我找到的最好的文章之一。它清楚地解释了 Sun 关于开发、打包、部署以及 JNDI 如何融入其中的“愿景”。
简而言之,Sun 和应用服务器提供商提供了一种方法来定义和命名全局 资源 (java:DefaultDS) 并绑定(bind)本地 资源引用名(jdbc/mydatasource) 到命名资源。
这解决了应用程序(由 J2EE 组件构成)的可移植性问题。但是本地资源引用名称是特定于组件的,因此它不能解决您的问题(多次部署相同的组件,但具有不同的本地资源引用名称)。
换句话说,Sun 的愿景并未解决您的特定用例(尽管我认为这是一个有效的用例)。使用 Sun 模型,您应该在构建/打包时解决这个问题(即创建和组装组件的两个版本,每个版本都使用特定的本地资源引用名称)。
您描述的编程方法(从存储在 JDNI/properties/whatever 中的键中查找值)是一种解决方法。
关于java - ServiceLocator 是否应该查找数据源的 jndi 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1750668/
我试图通过预准备语句使用同一连接执行多个查询,但无法完全实现! 代码片段: public class PostPrReqDaoImpl implements PostPrReqDaoInterface
我目前有一个 2 列宽的 DataGridView,第一列是 DataGridViewTextBoxColumn,第二列是 DataGridViewComboBoxColumn。我还有一个预生成的通用
当我在一台机器上运行以下代码时,我得到了 org.apache.tomcat.dbcp.dbcp.BasicDataSource 的 tomcat 实现,当我在另一台机器上运行它时,我得到了 org.
不确定这是否可行,但这是我的设置。 我有一台带有双启动功能的笔记本电脑。 一个一个分区我有 WinXP 和 MSAccess 2000在另一个分区上,Ubuntu 10.04,带有 apache we
我试过: czmlDataSource.load(czmlurl).then(function(){ viewer.dataSource
我有一个 TableView 和一个数组源。当我在 viewDidLoad 方法中初始化数组时,tableview 显示数组中的数据。当我从 Internet 上的 XML 数据的 URL 填充数组时
我对 DataSource 和 SessionFactory 之间的区别感到困惑。 我认为SessionFactory是一个用于检索 session 的管理器(我猜这实际上是与数据库的连接)。 Dat
我想存储大量(~数千)个字符串并能够使用通配符执行匹配。 例如,这里是一个示例内容: Folder1 文件夹 1/Folder2 Folder1/* Folder1/Folder2/Folder3 文
我有一个 DataGridView 和一个从 SQL 表填充的一些对象的列表。我曾使用两种方法将列表绑定(bind)到网格。 1.直接使用列表到数据源 grdSomeList.DataSource =
我正在尝试在 DataGridView 中设置一些内容。看起来这应该很简单,但我遇到了麻烦。我想显示三列: 代码ID 代号 带有 TypeName 的 DisplayMember 和 TypeID 的
在我的 Config.groovy我把线: grails.config.locations = [ "classpath:app-config.properties"] 我在哪里设置数据源的定义。文件
为了这个问题,假设我有一个包含各种酒类的 Excel 数据源电子表格。 (Cell A) | (Cell B) Bacardi | Rum Smirnoff | Vodka Another Vodka
由于我经常使用第三方 API,我认为创建一些 Magento 模块以实现轻松连接和查询它们会很有帮助。理想情况下,您可以像这样查询 API... $data = Mage::getModel( 'to
将后台线程频繁更新的数据源与 GUI 主线程同步的最佳方法是什么? 我应该在每个方法调用周围放置一个 pthread 互斥体吗?这对我来说似乎也很重。 编辑:我正在寻找 10.5 解决方案 最佳答案
经过几个小时的点击和试用,在查看各种帖子寻求帮助后,这段代码终于起作用了。但我希望有人帮助我理解函数(i,dat),这意味着什么?下面是我的完整代码 - function get_assignedta
我使用的是 Wildfly 10.1 版本,有两个数据源,如下所示, jdbc:mysql://${dbhostn
我正在学习数据源,我想我开始理解它,但我不明白这一段。 据我所知,MySQL 和 PostgreSQL 等数据库供应商编写了自己的不同 DataSource 接口(interface)的实现。现在,这
我有一个关于 TomEE 和使用 tomee.xml 中指定的数据源的奇怪问题。值得注意的是,我使用的是 Netbeans、TomEE 和 MySQL。在 Ubuntu 13.04(Xubuntu 最
WWDC 2019 确实充满了 iOS 的新内容以及 TableViews 和 CollectionView 的新数据源,即 UITableViewDiffableDataSource . 我已成功将
我在独立模式下运行 jboss 并将 standalone.xml 中的数据源设置为以下内容: jdbc:sqlserver://myip:1433;databaseNam
我是一名优秀的程序员,十分优秀!