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 数据源注入机制 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

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

    我是新来的 我希望使用 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