2012-10-02 21 views
1

我正试图在Cloudbees Paas上部署一个现有的Jboss 7 war应用程序,并且我遇到了数据源配置问题。在此之后专用Cloudbees wiki entryrelated thread,我在应用程序启动结束与下面的错误(已被他人在线程中提到):如何在Cloudbees Java EE6应用程序中配置Mysql数据源?

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:7的Jboss,JPA 2.0

回答

5

感谢Nicolas的答案和一些进一步的google搜索,我设法得到它的工作。据我所知,您不能在Jboss应用程序(特别是在我们的Cloudbees Java EE 6服务器)中使用cloudbees驱动程序com.cloudbees.jdbc.Driver,并且必须使用mysql一个com.mysql.jdbc.Driver
由于Nicolas指出jdbc:cloudbees://[databaseName]数据库URL按惯例使用了cloudbees驱动程序。您需要使用的URL引用实际的数据库的形式(你可以找到它在CloudBees的数据库配置页):

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

这里很重要的一点是JDBC:mysql的:// .. 。

使用上面的表单更改cloudbees-web.xml中的数据库的URL,它的工作原理!

也许cloudbees的人可以使文档在这个特定点上更清晰一点

+0

它试过了,它工作。但我想知道我可以在哪里获得com.cloudbees.jdbc.Drive Jar。我搜索了它,但我无法找到它。 – om39a

0

使用JDBC:CloudBees的: *需要使用com.cloudbees.jdbc.Driver作为驱动程序类名的JDBC URL。

按照惯例,在JVM上注册的每个JDBC驱动程序使用的前缀之前它自己特定的URL的相关信息,从而使JDBC URL是“JDBC ::”

+0

非常感谢您的回答。我想尝试一下你的解决方案,但我不确定代码中的哪个位置(或者通过cloudbees sdk),我需要指定对驱动程序类的引用。在我现有的代码中,我没有在任何地方指定jdbc驱动程序类名称。我曾尝试在persistence.xml中向我的pu声明中添加'',但它似乎什么也没做...... – koyaga

+0

还尝试在cloudbees-web.xml中引用驱动程序类名称:'',或者''没有成功(同样的错误信息) – koyaga

相关问题