Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里更改Jboss WildFly war文件中的数据源_Jboss_Wildfly_Datasource_War_Jboss Web - Fatal编程技术网

在哪里更改Jboss WildFly war文件中的数据源

在哪里更改Jboss WildFly war文件中的数据源,jboss,wildfly,datasource,war,jboss-web,Jboss,Wildfly,Datasource,War,Jboss Web,我当前的环境使用Linux、CentOS和WildFly 16。有多个数据源,都是在standalone.xml外部建立的。WildFly中的应用程序运行良好 我要处理的问题是,当我使用命令行界面(/bin/jboss cli.sh)部署war文件时,应用程序将使用现有的数据源,我想更改数据源。例如,App1.war使用MySqlDS1数据源,App2_test.war使用MySqlDS2数据源。我计划用App2_test.war覆盖App1.war。代码将为mv App2\u test.war

我当前的环境使用Linux、CentOS和WildFly 16。有多个数据源,都是在standalone.xml外部建立的。WildFly中的应用程序运行良好

我要处理的问题是,当我使用命令行界面(
/bin/jboss cli.sh
)部署war文件时,应用程序将使用现有的数据源,我想更改数据源。例如,App1.war使用MySqlDS1数据源,App2_test.war使用MySqlDS2数据源。我计划用App2_test.war覆盖App1.war。代码将为
mv App2\u test.war App1.war
。那时App1.war将指向MySqlDS2数据源,我相信,因为它现在包含App2_测试代码——这就是问题所在

我需要将App2_test.war文件更改为指向MySqlDS1。我需要在standalone.xml中找到将URL与数据源关联的文件-我相信。我查看了web.xml,但它不存在于我的war文件中,可能不会在EAP 6以上的版本中提供。我还查看了jboss-web.xml,但找不到文件。我在/META-INF中只有Manifest.mf,在/WEB-INF/lib中没有任何内容


需要更新哪些文件?

您的代码是否有
@PersistenceContext
注释?通常,这存储在
META-INF/persistence.xml
中,但这不是必需的。不幸的是,没有
persistence.xml
。在
META-INF
目录中,只有
MANIFEST.MF
可用。因此代码必须具有注释。这有点麻烦,因为您需要更改代码来更改持久性提供程序。我知道
jboss web.xml
web.xml
文件将提供最新的解决方案。但是,我看不到WAR文件与其数据源之间的关系,特别是当服务器上有不同的应用程序并且每个应用程序都有自己的数据库时。也许我就是找不到现有的批注。我在ImportedClass下找到了丢失的.class文件。这些类文件xxServet.class包含我正在寻找的硬编码数据源的注释,以及@stdunbar所说的内容。代码是`@javax.annotation.Resource(lookup=“java:jboss/datasources/MySqlDS2”)`。现在我可以用新的数据源名称更新这些类文件了吗?我应该在线下载javax.annotation.jar并添加到我的库中吗?或者使用另一种方法。