服务器:jboss-eap-7.1
数据库:MySQL 版本8.0.28
在jboss\jboss-eap-7.1\standalone\configuration\standalone.xml中配置的jndi:
<datasources>
<datasource jndi-name="java:/test1" pool-name="MySqlDS">
<connection-url>jdbc:mysql://100.200.10.200:3366/mytest1</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>50</max-pool-size>
</pool>
<security>
<user-name>testname1</user-name>
<password>testpassword1</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
</datasource>
<datasource jndi-name="java:/test2" pool-name="MyOraclelDS">
<connection-url>jdbc:oracle:thin:@13.45.96.88:4433:trade</connection-url>
<driver>myoracle</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>50</max-pool-size>
</pool>
<security>
<user-name>trade</user-name>
<password>QHtest123</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
</datasource>
项目起动报错:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/test1
原因:1、jboss上的mysql驱动和数据库的版本对不上,数据库版本为8.1.28,
在jboss的jboss\jboss-eap-7.1\modules\system\layers\base\com\jdbc\mysql\main中mysql的驱动为mysql-connector-java-5.1.41-bin.jar
2、配置文件module.xml也配置为版本5.1.41
-<module name="com.jdbc.mysql" xmlns="urn:jboss:module:1.5">
-<properties>
<property name="jboss.api" value="unsupported"/>
</properties>
-<resources>
<resource-root path="mysql-connector-java-5.1.41-bin.jar"/>
</resources>
-<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
解决:
1、在jboss的boss\jboss-eap-7.1\modules\system\layers\base\com\jdbc\mysql\main中上传驱动 mysql-connector-java-8.0.28.jar
2、修改module.xml,将驱动修改为mysql-connector-java-8.0.28.jar
-<module name="com.jdbc.mysql" xmlns="urn:jboss:module:1.5">
-<properties>
<property name="jboss.api" value="unsupported"/>
</properties>
-<resources>
<resource-root path="mysql-connector-java-8.0.28.jar"/>
</resources>
-<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>