"org.mariadb.jdbc"라는 이름의 JBOSS 드라이버.드라이버"가 인스톨 되어 있지 않다.
JBOSS7에 MariaDB Java 커넥터 설치
MariaDB를 사용하여 JBOSS7에 EJBCA 6을 도입할 수 없습니다.JBOSS 스탠드 아론을 사용하도록 EJBCA를 설정했습니다.기본 H2 데이터베이스 백엔드를 사용하면 설정이 작동합니다.JBOSS standalone.xml에서 mariadb Java 커넥터를 설정했습니다.
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mariadb" module="org.mariadb.jdbc">
<xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
</driver>
</drivers>
<datasource jndi-name="java:/MariaDS" pool-name="MariaDS" enabled="false">
<connection-url>jdbc:mariadb://localhost:3306/ejbca</connection-url>
<driver>mariadb</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>100</min-pool-size>
<max-pool-size>200</max-pool-size>
</pool>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements/>
</statement>
</datasource>
</datasources>
MariaDB Java 커넥터를 JBOSS_HOME/modules/org/mariadb/jdbc/main/mariadb-java-client-1.1.5.jar에 복사하고 module.xml을 다음과 같이 설정했습니다.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.mariadb.jdbc">
<resources>
<resource-root path="mariadb-java-client-1.1.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
MariaDB 드라이버는 boot.log 및 server.log에 나열됩니다.jboss-cli를 통해서도 표시됩니다.
[standalone@localhost:9999 /] /subsystem=datasources:installed-drivers-list
{
"outcome" => "success",
"result" => [
{
"driver-name" => "mariadb",
"deployment-name" => undefined,
"driver-module-name" => "org.mariadb.jdbc",
"module-slot" => "main",
"driver-datasource-class-name" => "",
"driver-xa-datasource-class-name" => "org.mariadb.jdbc.MySQLDataSource",
"driver-class-name" => "org.mariadb.jdbc.Driver",
"driver-major-version" => 1,
"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
}
]
}
EJBCA 데이터베이스를 설정했습니다.다음과 같은 속성:
database.driver=org.mariadb.jdbc.Driver
database.url=jdbc:mysql://hostname:3306/ejbca?characterEncoding=UTF
database.name=mysql
단, ant deploy를 사용하여 JBOSS에 EJBCA를 전개하려고 하면 전개는 실패하고 다음과 같은 문제가 발생합니다.
jee:deployDSJBoss7:
[exec] Result: 1
[exec] Result: 1
[echo] data-source add --name=ejbcads --driver-name="org.mariadb.jdbc.Driver" --connection-url="jdbc:mysql://ejbca-test-05.vm:3306/ejbca?characterEncoding=UTF-8" --jndi-name="java:/EjbcaDS" --use-ccm=true --user-name="ejbca" --password="reverse" --validate-on-match=true --background-validation=false --prepared-statements-cache-size=50 --share-prepared-statements=true --min-pool-size=5 --max-pool-size=150 --pool-prefill=true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql="select 1"
[exec] JBAS010468: Driver named "org.mariadb.jdbc.Driver" is not installed.
내가 뭘 잘못하고 있지?
- jboss 모듈 base dir에 module.xml 및 mariadb-java-client.jar를 복사합니다.\syslog\syslogadb\main\
module.xml에 대해서는 다음 샘플을 참조하십시오.사용자 이름으로 jar 파일 이름 업데이트
<module xmlns="urn:jboss:module:1.1" name="org.mariadb"> <resources> <resource-root path="mariadb-java-client-1.3.3.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
standalone.xml의 데이터 소스 구성 또는 사용하는 xml에 대해서는 아래를 참조하십시오.필요에 따라 IP/hostname, 포트 번호, 데이터베이스 이름(DB1), 풀 이름, jndi-name을 바꿉니다.
<datasource jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS" enabled="true" statistics-enabled="true"> <connection-url>jdbc:mariadb://10.92.142.148:6603/DB1</connection-url> <driver>mariadb</driver> <new-connection-sql>SELECT 1</new-connection-sql> <security> <user-name>your-database-username</user-name> <password>password</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> </datasource>
나중에 이 파트로 돌아와서 연결 풀을 업데이트하십시오.
드라이버에 다음 추가
<driver name="mariadb" module="org.mariadb"> <xa-datasource-class>org.mariadb.jdbc.MariaDbDataSource</xa-datasource-class> </driver>
jboss를 시작하여 콘솔에서 데이터 소스를 확인하고 연결을 테스트합니다.
몇 가지 이상한 점이 보이는데요
<datasource jndi-name="java:/MariaDS" pool-name="MariaDS" enabled="false">
enabled=false는 다음과 같이 존재하지 않거나 true가 되어서는 안 됩니다.
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
또, 데이터 소스 요소와 드라이버 요소가 있는 것이 일반적입니다.
아래 나는 많은 부분과 수집을 한 후 일을 했다.
먼저 jboss-cli를 통해 Mariadb jar 파일을 배포하고 다음으로 org/mariadb/main/에 모듈을 추가해야 합니다.
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.mariadb"> <resources> <resource-root path="mariadb-java-client-2.7.0.jar"/></resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
그런 다음 standalone.xml에 변경을 추가합니다.
<datasource jta="true" jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS" enabled="true" use-ccm="false">
<connection-url>jdbc:mariadb://localhost:3306/DbName</connection-url>
<driver>mariadb-java-client-2.7.0.jar</driver>
<driver-class>org.mariadb.jdbc.Driver</driver-class>
<security>
<user-name>uname</user-name>
<password>pwd</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>
언급URL : https://stackoverflow.com/questions/31453300/jboss-driver-named-org-mariadb-jdbc-driver-is-not-installed
'programing' 카테고리의 다른 글
문자열 매개 변수를 정수 열에 암묵적으로 캐스팅하는 MariaDB 10.3 실패 (0) | 2022.11.21 |
---|---|
"glob" 유형 패턴에 대해 java.util.regex와 동등한 것이 있습니까? (0) | 2022.11.21 |
mysql은 어디에 데이터를 저장합니까? (0) | 2022.11.21 |
JavaScript/jQuery를 사용한 파일 다운로드 (0) | 2022.11.02 |
ES6 클래스 기반의 React 컴포넌트와 기능적인 ES6 React 컴포넌트를 사용하는 경우 (0) | 2022.11.02 |