CloudBees Java EE6アプリケーションでMySQLデータソースを設定する方法
質問
CloudBees PaaSに既存のJBoss 7 Warアプリケーションを展開しようとしています。この専用関連スレッド、アプリケーションの起動中に次のエラー(スレッド内の他のスレッドで述べた)で終了します。
javax.resource.ResourceException: Wrong driver class [class com.mysql.jdbc.Driver] for this connection URL [jdbc:cloudbees://cbdebate--1]
.
マイ設定ファイルは次のとおりです。
cloudbees-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<cloudbees-web-app xmlns="http://www.cloudbees.com/xml/webapp/1">
<!-- Application ID (formatted CB_ACCOUNT/APPNAME) -->
<appid>hck/debate</appid>
<!-- DataSources (use names refererenced via <resource-ref> in WEB-INF/web.xml) -->
<resource name="jdbc/debate" auth="Container" type="javax.sql.DataSource">
<param name="username" value="myuser" />
<param name="password" value="mypassword" />
<param name="url" value="jdbc:cloudbees://cbdebate--1" />
<!-- Connection Pool settings -->
<param name="maxActive" value="20" />
<param name="maxIdle" value="2" />
<param name="maxWait" value="10000" />
<param name="validationQuery" value="SELECT 1" />
</resource>
</cloudbees-web-app>
.
web.xml (関連部分)
(...)
<resource-ref>
<res-ref-name>jdbc/debate</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
(...)
.
persistence.xml (関連部分)
<persistence-unit name="debate" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jdbc/debate</jta-data-source>
(... entity classes declaration ...)
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.max_fetch_depth" value="5"/>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
<property name="org.hibernate.worker.batch_size" value="1000" />
</properties>
</persistence-unit>
.
助けてくれてありがとうございました
env:JBoss 7、JPA 2.0
解決
ニコラスの答えとさらにグーグルのおかげで、私はそれを働かせることができました。私が理解している限りでは、JBossアプリケーション内から(そして特にCloudBees Java EE 6サーバー上の私たちの場合は私たちの場合)、MySQL One com.cloudbees.jdbc.Driver
を使用する必要があります。
NICOLASがcom.mysql.jdbc.Driver
データベースのURLがConvertBeesドライバで使用されていることを示した。実際のデータベースを参照するURLを使用する必要があります(CloudBeesデータベース構成ページで見つけることができます)
jdbc:mysql://ec2-AAA-BBB-CCC-DDD.compute-1.amazonaws.com:3306/[databaseName]
.
ここでの重要な点はJDBC: mysql :// ...
上記のフォームを使用してcloudbees-web.xmlにあるデータベースのURLを変更し、機能します。
CloudBeesは、この特定の点でドキュメントを少し明確にすることができます
他のヒント
JDBC:CloudBees:* JDBC URLドライバクラス名としてcom.cloudbes.jdbc.driverを使用する必要があります。
慣例により、JVMに登録されている各JDBCドライバは、それが独自のURL情報の前にプレフィックスを使用しているため、JDBC URLは "jdbc ::"
です。