Frage

Ich versuche, eine vorhandene Jboss 7 War-Anwendung auf dem Cloudbees Paas bereitzustellen und stecke bei der Konfiguration der Datenquelle fest.Im Anschluss daran gewidmet Cloudbees-Wiki-Eintrag und das verwandter Thread, erhalte ich beim Start der Anwendung den folgenden Fehler (bereits von anderen im Thread erwähnt):

javax.resource.ResourceException: Wrong driver class [class com.mysql.jdbc.Driver] for this connection URL [jdbc:cloudbees://cbdebate--1]

Meine Konfigurationsdateien lauten wie folgt:

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 (relevanter Teil)

(...)
<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 (relevanter Teil)

        <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>

Vielen Dank im Voraus für jede Hilfe

Umgebung:Jboss 7, JPA 2.0

War es hilfreich?

Lösung

Dank der Antwort von Nicolas und weiterem Googeln gelang es mir, es zum Laufen zu bringen.Soweit ich weiß, können Sie den Cloudbees-Treiber nicht verwenden com.cloudbees.jdbc.Driver aus einer Jboss-Anwendung (und speziell in unserem Fall auf dem Cloudbees Java EE 6-Server) und müssen die MySQL-Anwendung verwenden com.mysql.jdbc.Driver.
Wie Nicolas sagte jdbc:cloudbees://[databaseName] Die Datenbank-URL verwendet standardmäßig den Cloudbees-Treiber.Sie müssen die URL verwenden, die auf die tatsächliche Datenbank verweist (Sie finden sie auf der Cloudbees-Datenbankkonfigurationsseite) in folgender Form:

jdbc:mysql://ec2-AAA-BBB-CCC-DDD.compute-1.amazonaws.com:3306/[databaseName]

Der wichtige Punkt hier ist der JDBC:MySQL://...

Ändern Sie die URL der Datenbank in cloudbees-web.xml mithilfe des obigen Formulars und es funktioniert!

Vielleicht könnten die Cloudbees-Leute die Dokumentation zu diesem speziellen Punkt etwas klarer gestalten

Andere Tipps

Zur Verwendung von JDBC: CloudBees: * JDBC-URL Sie müssen com.cloudbees.jdbc.driver als Treiberklassenname verwenden.

Durch den Übereinkommen, jeder auf einem JVM registrierte JDBC-Treiber verwendet ein Präfix, bevor er eigene spezifische URL-Infos ist, sodass eine JDBC-URL "JDBC ::" ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top