具有相同资源的多个 JBoss Web 应用程序部署描述符

Posted

技术标签:

【中文标题】具有相同资源的多个 JBoss Web 应用程序部署描述符【英文标题】:Multiple JBoss Web Application Deployment Descriptor with same resources 【发布时间】:2014-09-12 02:04:30 【问题描述】:

我有一个耳朵,包括部署在 jboss 上的几个战争作为 7.1.1。 每场战争都有一个自定义的 JBoss Web 应用程序部署描述符 (jboss-web.xml) 声明上下文根和几个 jndi 数据源,这些数据源都在不同的 Web 应用程序之间共享。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>

<context-root>$app.name</context-root>

<resource-ref>
    <res-ref-name>$datasource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <jndi-name>java:/TenantDS</jndi-name>
</resource-ref>

<resource-ref>
    <res-ref-name>$shared.datasource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <jndi-name>java:/CustomerDS</jndi-name>
</resource-ref>

[...]
</jboss-web> 

如果我用 jboss-web.xml 文件添加另一个战争,只声明第一个数据源(因为它是这场战争唯一使用的数据源),那么剩余的战争都无法再到达丢失的数据源。

特定于 webapp 的部署描述符如何具有这样的行为?那么,这个配置有什么问题?数据源应该在哪里声明?

【问题讨论】:

【参考方案1】:

您是否在 web.xml 中声明了数据源?您必须在每个 war 应用程序的 jboss-web.xml 和 web.xml 中都有它。

【讨论】:

在 web.xml 我有使用的数据源,它工作正常,但我需要在 jboss-web.xml(但不是 web.xml)中添加未使用的数据源,否则任何其他战争都无法到达 DS

以上是关于具有相同资源的多个 JBoss Web 应用程序部署描述符的主要内容,如果未能解决你的问题,请参考以下文章

web工程迁移---在一个jboss5或jboss6中运行多个实例

具有不同参数的多个路由,调用相同的资源

将 Java EE Web 应用程序部署到 Wildfly/JBoss EAP

如果有多个具有相同类名且没有资源 ID 的元素,如何检查元素

Xcode 显示“该文档发现并修复了 4 个问题。/多个资源具有相同的名称:groupTableViewBackgroundColor。”警报

IllegalAnnotationException:两个类具有相同的 XML 类型名称