CloudBEES Java EE6 응용 프로그램에서 MySQL 데이터 소스를 구성하는 방법은 무엇입니까?

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

  •  12-12-2019
  •  | 
  •  

문제

CloudBees Paas에 기존 JBoss 7 WAR 응용 프로그램을 배포하려고하면 DataSource 구성으로 멈추고 있습니다.이 전용 CloudBees 위키 항목 관련 스레드 응용 프로그램 시작 중에 다음 오류 (이미 스레드의 다른 사람들이 이미 언급 됨)로 끝납니다.

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 드라이버 com.cloudbees.jdbc.Driver를 사용할 수 없으며 CloudBEES Java EE 6 서버의 경우 MySQL One com.mysql.jdbc.Driver를 사용해야합니다.
니콜라스는 jdbc:cloudbees://[databaseName] 데이터베이스 URL이 Convention ClourdBees 드라이버에서 사용합니다.실제 데이터베이스를 참조하는 URL을 사용해야합니다 (CloudBees 데이터베이스 구성 페이지에서 찾을 수 있음).

의 형식으로
jdbc:mysql://ec2-AAA-BBB-CCC-DDD.compute-1.amazonaws.com:3306/[databaseName]
.

중요한 지점은 jdbc : mysql : // ...

위의 양식을 사용하여 CloudBees-Web.xml에서 데이터베이스의 URL을 변경하고 작동합니다!

어쩌면 구름이 사람들 이이 특정 요점에서 문서를 조금 더 명확하게 만들 수 있습니다

다른 팁

JDBC를 사용하려면 : CloudBees : * JDBC URL com.cloudbees.jdbc.driver를 드라이버 클래스 이름으로 사용해야합니다.

협약에 따라 JVM에 등록 된 각 JDBC 드라이버는 자체 특정 URL Infos 이전의 접두사를 사용하므로 JDBC URL이 "jdbc ::"

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top