【问题标题】:How to configure WildFly10.x to able anykind of persistence如何配置 WildFly 10.x 以实现任何类型的持久性
【发布时间】:2017-07-26 15:52:28
【问题描述】:

我正在学习 Java EE,并尝试在我的计算机上使用 JBoss-WildFly 服务器应用程序在 Eclipse Oxygen (4.7) 中创建一个小型“动态 Web 项目”。我的目标只是一个基本目标,我希望在 Internet 浏览器上的 HTML 页面中拥有一个表单,以及一个接收输入并存储它的数据库。也许是一个可以显示其内容的页面。

我首先在我的计算机上安装 WildFly 10.1 版本。我在系统变量中设置了 JBOSS_HOME 值,从 Marketplace 安装了 Eclipse 的插件:“JBoss Tools 4.5.0.AM2”(周二 07/26/2017)。使用 jdk1.8 路径配置运行时环境。并开始创建我的应用程序。

我创建了拦截站点的第一个 url 的 servlet,如果它是 POST 请求,则处理调用正确的方法,如果它是对 jsp 页面、实体、jsp 页面、EntityDAO 和一个由 servlet 调用以完成应用程序工作的类(提取表单的参数以设置实体并调用 EntityDAO 以创建持久性)。

我想知道如何设置 persistence.xml 文件(使用哪个数据源、调用哪个包、“hibernate.hbm2ddl.auto”或其他?)以及如何配置服务器以便它使用mysql 或它自己的数据库在设置了所有持久性注释后才能正常工作。我没有看到太多关于如何做到这一点的信息。

【问题讨论】:

    标签: java jakarta-ee configuration persistence wildfly


    【解决方案1】:

    我建议您查看WildFly's quickstarts 以获得灵感并准备使用可能总是有用的简单示例项目,尤其是在您不确定如何配置特定技术的情况下(对于 Hibernate- 5 和 Wildfly-10 参见 quickstart/hibernate5)。

    请注意,每个分支对应于一些 wildfly 版本,因为快速入门可能会有所不同。

    无论如何,那里有很多信息。

    祝你好运!

    【讨论】:

      【解决方案2】:

      我以为我找到了解决方案,但它对我不起作用...无论如何我确实想发布它,因为它可能是处于相同情况的人所缺少的部分:

      所以对于未来的人来说,有解决方案:

      首先需要设置mysql驱动,如果你打算使用它(我只在mysql上):

      • 下载 MySQL JDBC jar 文件:“mysql-connector-java-5.1.xx-bin.jar”并将其复制到“C:\wildfly-10.x.x.Final\modules\mysql\main”。您必须创建“mysql/main”子目录。
      • 然后,在子目录“C:\wildfly-10.x.x.Final\modules\mysql\main”中创建一个名为“module.xml”的xml文件。
      • 将以下内容写入:

                <module xmlns:"urn:jboss:module:1.1" name="mysql" slot="main">
                    <resources>
                        <resource-root path="mysql-connector-java-5.1.xx-bin.jar"/>
                    </resources>
                    <dependencies>
                        <module name="javax.api"/>
                    </dependencies>
                </module> 
        
      • (请注意,在我提供给您的所有名称文件中,将 x 替换为您自己的版本号...)

      其次我们需要设置数据源定义:

      • 转到“C:\wildfly-10.x.x.Final\standalone\configuration”并打开standalone.xml文件
      • 滚动查看“subsystem xmlns="urn:jboss:domain:datasources:x.0"”部分,然后在“datasources”子部分添加以下内容:

                <datasource jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:mysql://localhost:3306/test</connection-url>
                    <driver>mysql</driver>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>20</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>root</user-name>
                        <password></password>
                    </security>
                </datasource>
        

      (密码是你配置mysql root账户时输入的密码,我留空)。

      • 最后在“驱动程序”小节中添加以下内容:

                    <driver name="mysql" module="mysql">
                        <driver-class>com.mysql.jdbc.Driver</driver-class>
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>
        
      • 保存并重新启动服务器(如果已打开),登录服务器的管理控制台(如果您没有为 WildFly 设置“管理用户”,则必须转到“C:\wildfly -10.x.x.Final\bin”目录并在命令行“add-user.bat”执行,第一个问题选择“a)”,设置用户名和密码,后面的问题回答no)。

      • 完成后,转到管理控制台的运行时选项卡并搜索数据源,对我而言,它位于独立服务器 > 子系统 > 数据源 > 视图中,您应该会看到新的 MySQLDS,并且应该能够对其进行测试,并且如果一切正常,结果应该是“成功”

      对我来说,虽然我有错误“WFLYJCA0040:无法调用操作:WFLYJCA0042:无法匹配池。检查 JndiName:java:jboss/datasources/MySQLDS”...我一定是在某处做错了。

      【讨论】:

        猜你喜欢
        • 2021-05-22
        • 2017-01-03
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        • 1970-01-01
        相关资源
        最近更新 更多