如何配置WildFly10.x以支持任何持久性

时间:2017-07-26 15:52:29

标签: java java-ee configuration persistence wildfly

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

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

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

我想知道如何设置persistence.xml文件(要使用哪个dataSource,要调用的包," hibernate.hbm2ddl.auto"或其他?)以及如何配置服务器,以便在设置所有持久性注释时使用mysql或其自己的数据库正常工作。我没有看到有关如何做到这一点的更多信息。

2 个答案:

答案 0 :(得分:2)

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

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

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

祝你好运!

答案 1 :(得分:0)

我以为我找到了一个解决方案,但它对我不起作用......无论如何,我确实希望发布它,因为它可能是同样情况下某人的缺失部分:

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

首先需要设置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&#39;

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

  • 转到&#34; C:\ wildfly-10.x.x.Final \ standalone \ configuration&#34;并打开standalone.xml文件
  • 滚动查看部分&#34;子系统xmlns =&#34; urn:jboss:domain:datasources:x.0&#34;&#34;然后在&#34;数据源中添加以下内容&#34;款:

            <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帐户时输入的密码,我将其留空了。)

  • 最后添加到&#34; drivers&#34;小节内容如下:

                <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>
    
  • 保存并重新启动服务器(如果已启用),登录服务器的管理控制台(如果您没有设置&#34;管理用户&#34;对于WildFly,您将不得不转到&#34; C:\ wildfly-10.xxFinal \ bin&#34;目录并在命令行中执行&#34; add-user.bat&#34;,选择&#34; a)&#34 ;对于第一个问题,请设置用户名和密码,并对以下问题回答“否”。

  • 完成后,转到管理控制台的运行时选项卡并搜索数据源,对我来说,它位于独立服务器&gt;子系统&gt;数据源&gt;查看,你应该看到新的MySQLDS,你应该能够测试它,如果一切正常,结果应该是&#34;成功&#34;

对我来说虽然我有错误&#34; WFLYJCA0040:无法调用操作:WFLYJCA0042:无法匹配池。检查JndiName:java:jboss / datasources / MySQLDS&#34; ...我一定做错了什么。