Как настроить DataSource MySQL в приложении Cloudbees Java EE6?

StackOverflow https://stackoverflow.com//questions/12693090

  •  12-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь развернуть существующую приложение Jboss 7 War на Paa Cloudbees, и я застрял с конфигурацией DataSource.После этого посвященный Cloudbees Wiki Entry и https Связанный нить , я заканчиваю со следующей ошибкой (уже упомянутой другими в потоке) во время запуска приложения:

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

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

Это было полезно?

Решение

Благодаря ответу Николаса и некоторого дальнейшего обнаженного, мне удалось заставить его работать.Насколько я понимаю, вы не можете использовать драйвер Greenbees com.cloudbees.jdbc.Driver из приложения JBOSS (и, в частности, в нашем случае на сервере Cloudbees Java EE 6) и должны использовать MySQL One GeneracodicCode. Поскольку Николас заявил URL URL базы данных com.mysql.jdbc.Driver, использует по соглашению драйвера Cloudbees.Вам необходимо использовать URL-адрес, ссылающийся на фактическую базу данных (вы можете найти его в странице конфигурации базы данных Cloudbees) в виде:

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

Важная точка здесь - JDBC: MYSQL : // ...

Измените URL базы данных в Cloudbees-Web.xml, используя форму выше и работает!

Может быть, облачные люди могут сделать документацию немного более понятнее в этой конкретной точке

Другие советы

Использовать JDBC: Cloudbees: * JDBC URL Вам нужно использовать com.cloudbees.jdbc.driver в качестве имени класса драйверов.

по Конвенции, каждый драйвер JDBC, зарегистрированный на JVM, использует префикс до того, как он не имеет собственного конкретного URL Infos, так что URL JDBC - «JDBC ::»

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top