Tomcat 7 数据源注入机制

2023-12-01

我正在尝试创建简单的网络应用程序。并停留在数据源注入上。似乎有几个问题。那么我就从我的困惑开始吧。据我了解,有两种(至少)方法将 DataSource 注入 Servlet:

  • web.xml
  • @资源

web.xml sample

<resource-ref>
    <res-ref-name>jdbc/MyDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <injection-target>
        <injection-target-class>ua.test.TestServlet</injection-target-class>
        <injection-target-name>dataSource</injection-target-name>
    </injection-target>
</resource-ref>

@资源 sample

public class TestServlet extends HttpServlet{
    @Resource
    private DataSource dataSource;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws     ServletException, IOException {

我的困惑:web.xml在我的简单项目中,Tomcat 7 不起作用。在我看来,web.xml该选项应该可以工作,因为 Java 5 之前没有注释。请解释一下。

Update:

数据源配置

<Resource name="jdbc/MyDB" 
          type="javax.sql.DataSource" 
          auth="Container"
          username="SA"
          password=""
          driverClassName="org.hsqldb.jdbcDriver"        
          url="jdbc:hsqldb:file:~/database/my_db" 
/> 

尝试取出injection-target进入web.xml并使用name属性上的@Resource注解:

public class TestServlet extends HttpServlet {
    @Resource(name = "jdbc/MyDB")
    private DataSource dataSource;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws     ServletException, IOException {
    }
}

这在我的 Tomcat 7.0.50 本地测试中有效。如果您正在寻找无注释的方法,我还没有得到它的工作,即使它应该给出他们的变更日志1.

EDIT

我仍然没有找到解决方案,但我很好奇为什么这不起作用,所以我看了一下injection-target代码。我发现它加载了context.xml首先输入,并从中获取设置web.xml,但选择不覆盖它在其中找到的配置context.xml因为它已经看到了jdbc/MyDB入口。我不知道如何获得injection-target设置成context.xml或数据库设置如driverClassName into web.xml.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat 7 数据源注入机制 的相关文章

  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • 使用 Guava 联合两个 ImmutableEnumSets

    我想联合两个ImmutableEnumSets来自番石榴 这是我的尝试 public final class OurColors public enum Colors RED GREEN BLUE YELLOW PINK BLACK pub
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v

随机推荐

  • 工作表中最后使用的单元格

    我是新来的 我希望使用 Excel VBA 返回工作表中最后使用的单元格 我看着使用 VBA 在 Excel 中查找上次使用的单元格时出错 但这并没有回答我遇到的两个问题 The Cells Find Row方法在我的代码中花费的时间太长
  • Svg - 文本元素的颜色背景/覆盖

    我刚刚开始使用 svg 并试图找出样式的局限性 我在 svg 中有一个 svg 文本元素 我的一些文本元素标记有 data editable true 我希望用户能够轻松地看到标记的元素是什么 我正在想象一个简单的 可切换的 半透明的覆盖层
  • 在SQL Server中合并一列中的每两行数据

    我的表结构是 Id UserId EventId 1 1 A 2 1 B 3 1 C 4 1 A 5 1 D 我需要的输出 UserId EventStart EventEnd 1 A B 1 B C 1 C A 1 A D 我希望每两行合
  • C# XML 在 xml 标签后插入注释到 XML

    我正在使用 C 对象来序列化 反序列化 XML 我想在序列化时向 XML 文件添加注释 该注释将是基本注释在标准 xml 标签之后 该注释不需要反序列化 它是一个基本注释 用于指示创建 xml 文件的产品和版本 可以直接序列化成新的X文档
  • 在 C# 中调用 SQL 连接方法

    我正在将此方法调用到我的登录表单 我不知道这有什么问题 我创建了一个名为 MyConnection 的类 该类包含我的 SQL ConnectionString 我想要的是我可以将此函数称为 ex 名为 Myfunction 的 Class
  • 在 Spring Rest 模板中设置超时

    应用程序正在使用 Spring Rest 模板来调用 Web 服务 我正在使用restTemplate exchange url 调用 Web 服务 目前我们没有为此 Web 服务调用传递任何超时值 我如何为 Spring Rest 模板设
  • 我如何使用Python脚本从网站获取pdf链接

    我经常需要从网站下载 pdf 文件 但有时它们不在一页上 他们在分页中划分了链接 我必须单击每一页才能获取链接 我正在学习 python 我想编写一些脚本 我可以在其中放置 web url 并从该网站提取 pdf 链接 我是 python
  • 确保在 StringTemplate 中转义 HTML 实体的最佳方法是什么

    假设有以下字符串模板 给出了 Java Bean 对象的列表 ul people p li p name p email li ul 即人员列表可能包含Person您可能有能力或没有能力增强 扩展的对象 class Person publi
  • 如何使用 ToString() 格式化可为空的 DateTime?

    如何转换可为空的日期时间dt2到格式化字符串 DateTime dt DateTime Now Console WriteLine dt ToString yyyy MM dd hh mm ss works DateTime dt2 Dat
  • 将 JSON 对象转换为另一个对象 - 格式化它

    我想将 JSON 格式的输出转换为另一种格式 我怎样才能做到这一点 例子 旧的 JSON data id e49e183e 9325 4e62 8eda 7e63fb7cdbbd name test id ac310894 d808 447
  • 大于运算符的优化

    信用表和有效交易表有2008年以来的百万条记录数据 我们正在进行迁移 所以我需要找出2017年之后不再使用的credittypeids periodseq 1055 这样就不需要迁移它们 这是查询 gt 部分会导致巨大的成本 请提出替代方案
  • 二维矩阵中各个列的最小-最大归一化

    我有一个包含 4 列 属性和 150 行的数据集 我想使用最小 最大标准化来标准化这些数据 到目前为止 我的代码是 minData min min data1 maxData max max data1 minmaxeddata data1
  • C# 是静态类型还是大部分是静态类型?

    我正在阅读JoeDuffy书中他说 C is a mostly statically typed 我读过的大多数将 C 描述为强类型语言的文章和书籍都有效地使用 强类型 来表示静态类型 真相在哪里 什么是mostly意思是 也许指的是很少有
  • Perl LibXML findvalues(...) 连接值

    我正在尝试使用 LibXML 从 XML 文件中提取节点值 当我打电话时findvalue相同元素类型的所有节点都被连接起来 我对使用 LibXML 完全陌生 而且对 Perl 也不是最熟悉 不幸的是 xml 不是最好的 如何提取单个节点
  • 快速检查值是否为数组类型(任何类型)

    如果值是数组 如何在 Swift 中检查 问题是类型数组Int显然不能转换为类型数组Any 假设我有一个数组myArray类型的Int并执行以下命令 if let array myArray as Any return true 它不会返回
  • 未解决的依赖 sbt 与 play 框架

    由于我是 Stack Overflow 的新手 请耐心等待 我正在开发一个使用 Play 2 5 的项目 该项目正是网站上的入门示例 因为我必须使用 ebean 所以我按照在 plugins sbt 中设置 ebean 的步骤进行操作 如下
  • 使用 Eclipse mac 找不到 ndk-build 和命令

    我正在使用 Eclipse for android ndk 在 mac 中开发 android 应用程序 我已经在 Eclipse 中给出了 NDK 路径 最后 当我给出此命令使用 android ndk 构建我的应用程序时 但出现以下错误
  • Pygame 没有移动我的矩形,我不明白为什么?

    我不知道为什么 但我的角色在显示中 但无法移动 它位于精灵组中 并且一直在更新 class player pygame sprite Sprite def init self pygame sprite Sprite init self s
  • 防止升级用户时出现 CoreData 崩溃

    大约一年半前 我开发了一个应用程序 现在我又回来了 这是我第一次接触 Swift 的项目 显然从那时起 无论是语言还是我的 Swift 能力都发生了很多变化 昨天 我第一次更新了我的单个 CoreData 模型以添加可选的字符串属性 我进行
  • Tomcat 7 数据源注入机制

    我正在尝试创建简单的网络应用程序 并停留在数据源注入上 似乎有几个问题 那么我就从我的困惑开始吧 据我了解 有两种 至少 方法将 DataSource 注入 Servlet web xml 资源 web xml sample