Java 未找到TomEE部署失败的数据源
我想将war文件部署到TomEE,但由于以下原因失败: 原因:Java 未找到TomEE部署失败的数据源,java,datasource,web-deployment,apache-tomee,openejb,Java,Datasource,Web Deployment,Apache Tomee,Openejb,我想将war文件部署到TomEE,但由于以下原因失败: 原因: javax.naming.NameNotFoundException: Name openejb/Resource/application_name/mysql_ds" not found. 如果重新启动服务器,部署会正常进行,但只会发生一次,然后会遇到相同的错误 我在WEB-INF/resources.xml文件中定义了数据源 <tomee> <Resource id="mysql_ds"
javax.naming.NameNotFoundException:
Name openejb/Resource/application_name/mysql_ds" not found.
如果重新启动服务器,部署会正常进行,但只会发生一次,然后会遇到相同的错误
我在WEB-INF/resources.xml文件中定义了数据源
<tomee>
<Resource id="mysql_ds" type="javax.sql.DataSource">
JdbcDriver = com.mysql.jdbc.Driver
JdbcUrl = jdbc:mysql://IP:3306/db?serverTimezone=UTC&autoReconnect=true
UserName = user
Password = password
JtaManaged = true
</Resource>
</tomee>
JdbcDriver=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://IP:3306/db?serverTimezone=UTC&自动重新连接=真
用户名=用户
密码=密码
JtaManaged=true
另外,我还应该提到,还有另一个克隆应用程序(开发模式)具有相同的配置,并且运行良好。您可以使用
WEB-INF/resources.xml
定义一个或多个数据源,或者使用/conf
文件夹中的tomee.xml
文件,如tomee项目文档的中所述:
可以通过/conf/tomee.xml文件或WEB-INF/resources.xml文件中的xml声明数据源
但是,resources.xml
的语法与容器范围的定义略有不同。对于与web应用程序捆绑在一起的resources.xml
,其格式应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<Resource id="mysql_ds" type="javax.sql.DataSource">
JdbcDriver = com.mysql.jdbc.Driver
JdbcUrl = jdbc:mysql://IP:3306/db?serverTimezone=UTC&autoReconnect=true
UserName = user
Password = password
JtaManaged = true
</Resource>
</resources>
JdbcDriver=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://IP:3306/db?serverTimezone=UTC&自动重新连接=真
用户名=用户
密码=密码
JtaManaged=true
请注意,标签
与问题中给出的
不同。这应该适用于默认的TomEE环境。另见:RMANIBUCAU的评论
希望有帮助。您可以使用
WEB-INF/resources.xml
定义一个或多个数据源,也可以使用/conf
文件夹中的tomee.xml
文件,如tomee项目文档的中所述:
可以通过/conf/tomee.xml文件或WEB-INF/resources.xml文件中的xml声明数据源
但是,resources.xml
的语法与容器范围的定义略有不同。对于与web应用程序捆绑在一起的resources.xml
,其格式应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<Resource id="mysql_ds" type="javax.sql.DataSource">
JdbcDriver = com.mysql.jdbc.Driver
JdbcUrl = jdbc:mysql://IP:3306/db?serverTimezone=UTC&autoReconnect=true
UserName = user
Password = password
JtaManaged = true
</Resource>
</resources>
JdbcDriver=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://IP:3306/db?serverTimezone=UTC&自动重新连接=真
用户名=用户
密码=密码
JtaManaged=true
请注意,标签
与问题中给出的
不同。这应该适用于默认的TomEE环境。另见:RMANIBUCAU的评论
希望有帮助。请注意,如果发现冲突的定义,资源将在上下文中解决(使用类加载器),因此您仍然可以在两个不同的Web应用程序中部署两个冲突的资源。@RMANIBUCAU对于这种情况,这是一个很好的提示/说明,thx。请注意,如果发现冲突的定义,资源将在上下文中解析(使用类加载器),因此您仍然可以在两个不同的Web应用程序中部署两个冲突的资源。@RMANIBUCAU对于这种情况,这是一个很好的提示/说明,thx。