Tomcat context.xml 中的资源名称属性如何工作?

2024-03-23

我们正在使用 JNDI 来查找我们的数据库连接。在Tomcat的全局context.xml文件中,我们有类似以下内容:

<context>
    <Resource
        ...
        name="jdbc/mysql"
        ....
    />
</context>

(我刚刚在上面显示了我感兴趣的“名称”属性)。

这对于应用程序来说效果很好。

我们现在想要为不同的应用程序添加另一个资源。我们的 context.xml 如下所示:

<context>
    <Resource
        ...
        name="jdbc/mysql"
        ....
    />
    <Resource
        ...
        name="jdbc/mysql/otherapp"
        ....
    />

</context>

现在,使用该名称定义了这个额外的资源后,Tomcat 无法启动。基本上我们所有的 Web 应用程序都会失败。它给出以下错误:

SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/CallCycleSystem##1.0.4.201410241335]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to javax.naming.Context
    at org.apache.catalina.core.NamingContextListener.createSubcontexts(NamingContextListener.java:1249)
    at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1051)
    at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:671)
    at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:270)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more

如果我将第二个资源的名称属性从“jdbc/mysql/otherapp”更改为“jdbc/otherapp”,Tomcat 会正常启动。

谁能详细说明 name 属性的工作原理吗?为什么我之前收到错误? 查看文档here http://tomcat.apache.org/tomcat-6.0-doc/config/context.html#Resource_Definitions没有给我太多。

Thanks.


您基本上可以按如下方式阅读:

for <Resource name="jdbc/MyDB" ... />: 您正在创建一个JDBC有名称的资源MyDB,

for <Resource name="bean/MyBean" ... />: 您正在创建一个Java豆有名称的资源MyBean.

换句话说,名称编码为“资源类型/资源名称"

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

Tomcat context.xml 中的资源名称属性如何工作? 的相关文章

  • Postman - 所需的 MultipartFile 参数不存在 - Spring,Java [重复]

    这个问题在这里已经有答案了 Edit 这个问题不同于 jQuery Ajax 文件上传 所需的 MultipartFile 参数 文件 不存在 https stackoverflow com q 29488852 2279082不同之处在于
  • Spring MVC - 为什么部署上下文时出现 NoSuchMethodError 异常?

    尽管这个项目已经为我工作了一段时间 但现在当我尝试在 Tomcat 中部署应用程序上下文时遇到异常 Servlet testapp threw load exception java lang NoSuchMethodError org s
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • 如何在 tomcat 上部署 Java Web 应用程序 (.war)?

    我有一个 warJava Web 应用程序的文件 现在我想将它上传到我的 ftp 服务器 以便我可以执行它 我应该执行哪些步骤来运行它 webapp的上下文路径是 mywebapp Edit 实际上 我的 ftp 服务器名称是ftp bil
  • 由于 http 响应 405,无法执行 mvn tomcat:deploy

    我正在将 Tomcat 7 作为 Windows 服务运行 我想在我的项目根目录中进行 mvn tomcat 部署 但总是出现这个错误 你能帮我解决这个问题吗 INFO Deploying war to http localhost 808
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • 部署示例 Spring Web MVC 项目

    我是 Tomcat Maven 和 Spring Web MVC 准确地说是框架 v3 的新手 我试图建立example https anonsvn springframework org svn spring samples 项目mvc
  • Chrome 问题:“无法加载资源:net::ERR_CONNECTION_TIMED_OUT”

    我尝试通过 HTTPS 访问我的 Web 应用程序 它无法加载 JavaScript 文件并显示 无法加载资源 net ERR CONNECTION TIMED OUT 但它在 IE 和 Firefox 中按预期工作 通过 HTTP 在 C
  • NoInitialContextException:heroku 战争部署

    我一直在开发一个 J2EE 项目 并且在其中使用连接池 也通过部署在 heroku 上的数据库进行访问 我使用以下代码来设置 Connection 对象 Context initContext new InitialContext Cont
  • 我们必须将 .class 文件放在 Tomcat 目录中的位置

    我必须把我的 class文件在 Tomcat 目录中 在我的 Java Complete Reference 书中 他们告诉将其放入C Program Files Apache Tomcat 4 0 webapps examples WEB
  • web.xml 中的多个安全约束不起作用

    我正在升级一个 Web 应用程序 Servlet 3 0 Tomcat 7 它的大部分页面都需要基本身份验证 该应用程序具有一小组监视 servlet 其中任何一个都不应该受到保护 在我的web xml 我目前有以下内容security c
  • 升级到 Tomcat 8 时出现 ClassNotFoundException

    我最近将 NetBeans IDE 从 v7 3 升级到 v8 突然我的应用程序在连接到数据库时在服务器启动时抛出异常 这两个版本的 IDE 之间的唯一区别是后者使用 Tomcat 8 异常日志 javax naming NamingExc
  • MySQL JDBC 连接上的故障转移?

    我正在尝试确定如何使用 MySQL JDBC 驱动程序实现高可用性解决方案 似乎有一个我可以设置的故障转移属性 但我想知道当使用 MySQL 和 JDBC 实现简单的故障转移机制时 人们倾向于使用什么 我们计划将 2 个前端 Tomcat
  • 带有 Spring 的 Tomcat

    我有一个在 Tomcat 中托管的 3 层应用程序 Web 服务和 DAO 层 如何整合Tomcat和Spring 我需要利用Spring的依赖注入 事务管理等 我只能想到实例化 ClassPathXmlApplicationContext
  • 更改 Spring Web 应用程序的默认会话超时

    我必须测试一个由 spring 和 jsp 编写的 Web 应用程序 应用程序的默认会话超时为 30 分钟 我想减少会话超时 为此 我改变了web xml文件输入tomcatInstallationLocation conf 但这不起作用
  • 如何在 Windows Vista 命令提示符中检查端口 8080?

    我对编程和设置 Java 服务器非常陌生 其实这是我第一次尝试 但没有成功 我即将用 Java 测试我的第一个 Web 应用程序 但是每当我在 Eclipse 中单击 以调试模式启动服务器 按钮时 我总是收到有关 Tomcat 服务器的错误
  • 如何允许/限制某些计算机名称访问 tomcat 服务器?

    我在我的电脑上打开了一个服务器 我所有在同一网络上的朋友都可以从他们的计算机访问它 但我只想让我的一位朋友访问 所以我尝试在我的中写下以下内容context xml
  • Tomcat - 多个 webapps 文件夹

    是否可以有多个文件夹来放置要部署的应用程序 这些是如何定义的 是否可以将一个文件夹限制为仅是 domain com 的应用程序 而不是其他域 Thanks 看一眼conf server xml

随机推荐

  • Rails:我无法在重定向中传递验证错误

    所以这是一个简单的项目 其中有产品 您可以对其进行投标 想想易趣 我构建的项目如下 rails new routetest rails g scaffold product productname reserveprice integer
  • 有没有办法在没有“e”参数的情况下阻止 JavaScript 中的气泡?

    我看到很多教程告诉我防止气泡的方法是使用 e 参数 就像 function e e preventDefault 但在某些情况下 萤火虫告诉我 e is not Define 是错误的 那么有没有办法不用参数e就可以阻止气泡呢 如果您使用元
  • 使用 PHP 上传非常大的数据

    我想允许将非常大的文件上传到我们的 PHP 应用程序中 数百兆 8 GB 然而 这存在一些问题 Browser HTML 上传的反馈很糟糕 我们需要轮询进度 这有点傻 或者根本不显示任何反馈 Flash 上传程序在开始上传之前将整个文件放入
  • PHP,读取通过cURL发送的XML文件

    我有这段代码 通过 cURL 将 XML 文件中的数据发送到新闻办公室 现在我希望得到媒体的反馈 表明我的订单已确认或完成 我也希望将其包含在 XML 文件中 我知道如何通过curl发送文件 现在我想知道如何接收它们 以便我可以读出数据 欢
  • 优化:将浮点数乘以整数还是另一个浮点数更快

    如果我尝试将浮点数乘以整数 则将其乘以整数表示的整数是否更快 int x float y 0 5784f x Where x contains a dynamically chosen whole number 或通过另一个浮点数 前提是精
  • 猫鼬网络服务器 helloworld 程序

    我遇到了一个名为 mongoose 的嵌入式 Web 服务器http code google com p mongoose http code google com p mongoose 我读了维基 它很棒 我搜索了一些示例 hello w
  • iOS 中屏幕关闭/设备锁定时定时器不运行

    应用程序位于后台 在与 BLE 设备断开连接时会收到回调 之后应用程序必须等待一段时间 1 分钟 然后执行一些代码 如果屏幕打开 即使在后台 应用程序也会按预期运行 但是 如果屏幕关闭 则计时器将无法工作 并且应用程序不会按预期执行 这是
  • bash 正则表达式带引号?

    下面的代码 number 1 if number 0 9 then echo matched fi 作品 但是 如果我尝试在正则表达式中使用引号 它就会停止 number 1 if number 0 9 then echo matched
  • Angular Material Stepper - 如何动态创建组件以加载到步骤中

    我看过很多类似的帖子 我希望能够使用 ngFor创建组件然后加载到步骤中材料步进机 https material angular io components stepper overview 我一直在关注一个动态加载示例 https sta
  • Symfony 2.8+,教义继承和形式

    在开始之前 请注意我正在学习 symfony 所以请记住这一点 我只是想了解它是如何工作的 这就是我想要实现的目标 我想使用学说制作一个实体继承的简单示例 这就是我的示例的样子 摘要父类 特点 儿童1班 Magician 儿童2班 Warr
  • 如何更改mvc3中razor中LabelFor的显示名称?

    在我用过的剃须刀引擎中LabelFor显示名称的辅助方法 但显示名称似乎不太好显示 所以我需要更改我的显示名称该怎么做 Html LabelFor model gt model SomekingStatus new class contro
  • OpenCV - 薄板样条翘曲的合适实现

    我有一张脸的形状以及该脸的重建 我想对初始形状的相应图像进行建模 基本上 我想将点从原始形状移动到面部重建指示的位置 我尝试通过使用薄板样条翘曲来做到这一点 它的实现如下 http ipwithopencv blogspot ro 2010
  • 在 Asp.Net Mvc 中使用 Ajax 刷新表列表

    我的模式有问题 在创建新条目后 我的表列表没有显示表中最后创建的行 在我的数据库中它已经存在 它仅在刷新页面后才显示 我尝试了一些东西 但只第一次起作用 来自 在 ASP NET MVC 中使用 AJAX 刷新表 https stackov
  • 使用ajax url调用函数

    希望我能正确地问这个问题 因为我知道我想要它做什么 但似乎无法从搜索中找到任何答案 我有一个 func php 页面 其中包含所有函数 并且我希望 ajax 使用该页面中的一个函数 func php function toptable ec
  • Python DataFrame 从每日数据中选择每月增量的行

    让我们直接进入问题吧 以下为每日数据 AAA BBB CCC date 2012 04 16 44 48 28 48 17 65 2012 04 17 44 59 28 74 17 65 2012 04 18 44 92 28 74 17
  • CouchDB 对 _users 数据库的读/写限制

    我想限制用户权限 以便普通用户只能读 写自己的用户文档 我设法设置写入权限 以便用户只能编辑自己的文档 通过设计文档中的 validate doc update 函数 现在我只需限制用户查看用户列表或其他用户文档即可 如果我将数据库读取权限
  • 使用 Scala Slick 实现高阶函数,实现 DRY 优点

    我知道我的 Scala Slick 数据访问层应该是什么样子 但我不确定这是否真的可能 假设我有一个 User 表 其中包含 id 电子邮件 密码等常用字段 object Users extends Table String String
  • Sailsjs/waterline 指定模型中的小数位数

    我如何告诉我的帆模型我想要一些特定的小数位type float 属性 喜欢decimalPlaces 4或者类似的东西 问题是 当我向此条目发布值时 磁盘上的值会被截断为 00 数百 个地方 说我想要 3243 2352362按原样存储 目
  • ENOENT:没有这样的文件或目录。?

    这是发布数据和文件时出现的错误 我遵循 academind 教程来构建 Restful API 服务 我也一直在寻找此类错误的答案 但对我来说没有任何作用 我使用 multer 上传文件 文件夹 上传 在文件夹中可用 但显示 ENOENT
  • Tomcat context.xml 中的资源名称属性如何工作?

    我们正在使用 JNDI 来查找我们的数据库连接 在Tomcat的全局context xml文件中 我们有类似以下内容