Wildfly mysql而不是h2

时间:2014-09-02 10:27:33

标签: jboss wildfly

我们在Eclipse中运行一个项目并使用Wildfly作为webserver。我们已经配置了wildfly并创建了一个可行的新mysql数据源。我们在Eclipse中为数据库创建了一个数据库和一个新的Connection,并使用Wildfly提供的url创建了实体。所以到目前为止一切都很好。

我们现在遇到的问题是,当我们运行应用程序并尝试持久化实体时,我们会收到一条错误,说明"由以下原因引起:org.h2.jdbc.JdbcSQLException:表" USER"未找到; SQL语句......"

在gooling之后我们发现我们必须改变standalone.xml并且这样做。

         <datasource jta="false" jndi-name="java:jboss/fakebook" pool-name="mysql" enabled="true" use-ccm="false">
                <connection-url>jdbc:mysql://localhost:3306/fakebook</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql</driver>
                <security>
                    <user-name>root</user-name>
                </security>
                <validation>
                    <validate-on-match>false</validate-on-match>
                    <background-validation>false</background-validation>
                </validation>
                <statement>
                    <share-prepared-statements>false</share-prepared-statements>
                </statement>
            </datasource>
            <drivers>
                <driver name="com.mysql" module="mysql.mysql-connector-java">
                  <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                </driver>
                <driver name="mysql" module="org.mysql">
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                </driver>
            </drivers>

重新启动服务器但遇到同样的问题但同样的异常。当我们独立打开时,它已经变回默认值:

                    <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
                <driver name="mysql" module="org.mysql">
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                </driver>

3 个答案:

答案 0 :(得分:1)

除了确保你的standalone.xml没有被覆盖之外(正如'&#39; shi&#39;所指出的那样)你还应该为wildfly添加一个MySQL模块:

  1. 转到%WILDFLY_HOME%\ modules \ system \ layers \ base \ com
  2. 创建文件夹sql \ mysql \ main \
  3. 将MySql连接器jar放到主文件夹
  4. 将以下module.xml文件放在main文件夹中(根据您使用的版本更改资源根路径中连接器的名称):
  5. <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.1" name="com.sql.mysql">
      <resources>
         <resource-root path="mysql-connector-java-5.0.4-bin.jar"/>             
      </resources>
      <dependencies>
         <module name="javax.api"/>
      </dependencies>
    </module>
    

    使用的来源材料:some blog

答案 1 :(得分:0)

我认为您在standalone.xml更改之前没有关闭服务器。我对吗?停止服务器时,Wildfly将覆盖standalone.xml,因此您必须在更改配置文件之前停止服务器! 如果要编辑正在运行的服务器实例中的数据源定义并对其进行测试,则还可以使用命令行界面。

答案 2 :(得分:0)

在connection-url尝试放入此xml标记之后:

<connection-property name="DatabaseName">"name_of_database"</connection-property>

也许hibernate无法找到数据库。