كيفية تكوين مصدر بيانات Mysql في تطبيق Cloudbees Java EE6؟

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

  •  12-12-2019
  •  | 
  •  

سؤال

أحاول نشر تطبيق Jboss 7 war موجود على Cloudbees Paas وأواجه مشكلة في تكوين مصدر البيانات.بعد هذا مخصص دخول ويكي 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>
(...)

الثبات.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>

شكرا لكم مقدما على أي مساعدة

البيئة :جبوس 7، جبا 2.0

هل كانت مفيدة؟

المحلول

بفضل إجابة نيكولا وبعض البحث الإضافي على Google، تمكنت من إنجاح الأمر.بقدر ما أفهم، لا يمكنك استخدام برنامج التشغيل cloudbees com.cloudbees.jdbc.Driver من داخل تطبيق Jboss (وتحديدًا في حالتنا على خادم Cloudbees Java EE 6) ويجب عليك استخدام تطبيق mysql com.mysql.jdbc.Driver.
كما ذكر نيكولاس jdbc:cloudbees://[databaseName] يستخدم عنوان url لقاعدة البيانات وفقًا لاتفاقية برنامج تشغيل cloudbees.تحتاج إلى استخدام عنوان url الذي يشير إلى قاعدة البيانات الفعلية (يمكنك العثور عليه في صفحة تكوين قاعدة بيانات cloudbees) في شكل:

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

النقطة المهمة هنا هي jdbc:mysql://...

قم بتغيير عنوان url لقاعدة البيانات في cloudbees-web.xml باستخدام النموذج أعلاه وسيعمل!

ربما يستطيع فريق Cloudbees جعل التوثيق أكثر وضوحًا بشأن هذه النقطة بالذات

نصائح أخرى

لاستخدام JDBC: cloudbees: * url jdbc تحتاج إلى استخدام com.cloudbees.jdbcriver كاسم فئة السائق.

حسب الاتفاقية، يستخدم كل من برنامج تشغيل JDBC المسجل على JVM بادئة قبل فولاذ عنوان URL محدد خاص به، بحيث عنوان URL JDBC هو "JDBC ::"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top