【问题标题】:Wildfly mysql instead of h2Wildfly mysql而不是h2
【发布时间】:2014-09-02 10:27:32
【问题描述】:

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

我们现在遇到的问题是,当我们运行应用程序并尝试持久化一个实体时,我们收到一条错误消息“Caused by: org.h2.jdbc.JdbcSQLException: Table "USER" not found; SQL statement... "

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>

【问题讨论】:

    标签: jboss wildfly


    【解决方案1】:

    除了确保您的standalone.xml 不会被覆盖(正如“shi”所指出的那样),您还应该向 wildfly 添加一个 MySQL 模块:

    1. 转到 %WILDFLY_HOME%\modules\system\layers\base\com
    2. 创建文件夹 sql\mysql\main\
    3. 将 MySql 连接器 jar 放到主文件夹中
    4. 将以下module.xml文件放到主文件夹中(根据你使用的版本更改资源根路径中的连接器名称):
    <?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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        在connection-url之后尝试放置这个xml标签:

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

        也许hibernate找不到数据库。

        【讨论】:

          猜你喜欢
          • 2016-04-22
          • 2018-05-07
          • 2015-06-12
          • 2019-03-30
          • 1970-01-01
          • 2019-05-09
          • 2014-02-20
          • 2023-03-19
          • 1970-01-01
          相关资源
          最近更新 更多