我试图testing数据源连接。
mysql连接器驱动程序安装在我的jboss eap 7 – standalone模式下。
从cli安装:
module add --name=com.mysql --resources=/home/mmartinez/Descargas/mysql- connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar -- dependencies=javax.api,javax.transaction.api
并注册了:
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver- module-name=com.mysql,driver-xa-datasource-class- name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, driver-class- name=com.mysql.jdbc.Driver)
所以连接器驱动程序是注册的:
installed-drivers=[{"driver-name" => "mysql","deployment-name" => undefined,"driver-module-name" => "com.mysql","module-slot" => "main","driver-datasource-class-name" => "","driver-xa-datasource-class-name" => "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource","driver-class-name" => "com.mysql.jdbc.Driver","driver-major-version" => 5,"driver-minor-version" => 1,"jdbc-compliant" => false},{"driver-name" => "h2","deployment-name" => undefined,"driver-module-name" => "com.h2database.h2","module-slot" => "main","driver-datasource-class-name" => "","driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource","driver-class-name" => "org.h2.Driver","driver-major-version" => 1,"driver-minor-version" => 3,"jdbc-compliant" => true}]
从我的standalone.xml:
<datasources> <datasource jta="true" jndi-name="java:/datasources/mariadb1" pool-name="mariadb1" enabled="true" use-ccm="true"> <connection-url>jdbc:mariadb://localhost:3306/jbossdb1</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver>mysql</driver> <security> <user-name>admin</user-name> <password>admin</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <background-validation>true</background-validation> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> </datasource> <driver name="mysql" module="com.mysql"> <driver-class>com.mysql.jdbc.Driver</driver-class> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> </driver>
但是当我尝试从控制台pipe理testing连接时:
Failed to create JDBC connection. An internal error occurred. Unexpected HTTP response: 500 Request { "address" => [ ("subsystem" => "datasources"), ("data-source" => "mariadb1") ], "operation" => "test-connection-in-pool" } Response Internal Server Error { "outcome" => "failed", "failure-description" => "WFLYJCA0040: No se logró invocar la operación: WFLYJCA0047: La conexión no es válida", "rolled-back" => true, "response-headers" => {"process-state" => "reload-required"} }
重装后,同样的问题:
Unexpected HTTP response: 500 Request { "address" => [ ("subsystem" => "datasources"), ("data-source" => "mariadb1") ], "operation" => "test-connection-in-pool" } Response Internal Server Error { "outcome" => "failed", "failure-description" => "WFLYJCA0040: No se logró invocar la operación: WFLYJCA0047: La conexión no es válida", "rolled-back" => true
}
我在fedora 26上运行mariadb。
当然,具有用户admin权限的db jbossdb1已经被创build了。
的console.log:
14:46:54,638 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 58) IJ000604: Throwable while attempting to get a new connection: null: javax.resource.ResourceException: IJ031084: Unable to create connection at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:345) at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:352) at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:287) at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1320) at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:496) at org.jboss.jca.core.connectionmanager.pool.AbstractPool.internalTestConnection(AbstractPool.java:1052) at org.jboss.jca.core.connectionmanager.pool.strategy.OnePool.testConnection(OnePool.java:93) at org.jboss.as.connector.subsystems.common.pool.PoolOperations$TestConnectionInPool.invokeCommandOn(PoolOperations.java:234) at org.jboss.as.connector.subsystems.common.pool.PoolOperations$1.execute(PoolOperations.java:90) at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:890) at org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:659) at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:370) at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1344) at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:392) at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:217) at org.jboss.as.domain.http.server.DomainApiHandler.handleRequest(DomainApiHandler.java:212) at io.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72) at org.jboss.as.domain.http.server.security.SubjectDoAsHandler$1.run(SubjectDoAsHandler.java:72) at org.jboss.as.domain.http.server.security.SubjectDoAsHandler$1.run(SubjectDoAsHandler.java:68) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:92) at org.jboss.as.domain.http.server.security.SubjectDoAsHandler.handleRequest(SubjectDoAsHandler.java:68) at org.jboss.as.domain.http.server.security.SubjectDoAsHandler.handleRequest(SubjectDoAsHandler.java:63) at io.undertow.server.handlers.BlockingHandler.handleRequest(BlockingHandler.java:56) at org.jboss.as.domain.http.server.DomainApiCheckHandler.handleRequest(DomainApiCheckHandler.java:95) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) at org.jboss.threads.JBossThread.run(JBossThread.java:320) Caused by: javax.resource.ResourceException: IJ031083: Wrong driver class [com.mysql.jdbc.Driver] for this connection URL [jdbc:mariadb://localhost:3306/jbossdb1] at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:323) ... 31 more 14:46:54,640 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 58) WFLYCTL0013: Operación ("test-connection-in-pool") falló - dirección: ([ ("subsystem" => "datasources"), ("data-source" => "mariadb1") ]) - descripción de la falla: "WFLYJCA0040: No se logró invocar la operación: WFLYJCA0047: La conexión no es válida"
请帮忙吗?
谢谢!