java - 如何将 Hibernate 与 WildFly 一起使用?
问题描述
晚上好。
我正在尝试创建一个使用以下项目的项目:
我的目的是学习所有这些家伙的基础知识。起初,我遵循了一个很棒的 [@BalusC 的教程][1],它教我如何设置和首先运行 webapp。
我现在的问题在于将数据库与应用程序集成。我遵循了一些指南并在互联网上进行了一些搜索,发现一种方法是编辑web.xml和persistence.xml。(我试图让它尽可能接近历史教程)。
这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0" metadata-complete="true">
<display-name>project</display-name>
... (some params)
<data-source>
<name>java:global/projectDS</name>
<class-name>org.postgresql.ds.PGConnectionPoolDataSource</class-name>
<url>jdbc:postgresql://localhost:5432/project</url>
</data-source>
... (servlet info)
</web-app>
还有我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
<persistence-unit name="projectPU"
transaction-type="JTA">
<jta-data-source>java:global/projectDS</jta-data-source>
<class>project.entity.Message</class>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQL95Dialect" />
<property name="hibernate.default_schema" value="main" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="javax.persistence.jdbc.driver"
value="org.postgresql.Driver" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
当我运行 Web 应用程序时,我收到以下错误:
Caused by: org.jboss.as.controller.OperationFailedException: WFLYJCA0117: org.postgresql.ds.PGConnectionPoolDataSource is not a valid javax.sql.DataSource implementation [ "WFLYJCA0117: org.postgresql.ds.PGConnectionPoolDataSource is not a valid javax.sql.DataSource implementation" ]
我想知道你们中是否有人知道我做错了什么以及我该如何解决。
PS:我在WildFly 的页面上读到 WildFly 有它自己的 Hibernate“版本”,一些论坛说在使用“外部”休眠源时可能会出现一些问题。但是,由于我的 Hibernate 配置与 Wildfly 的任何配置都没有任何关联(我相信如此),我想这不是问题所在。
提前致谢。
更新#1
我尝试了来自链接@TacheDeChoco 发送的解决方案#2。起初它是工作人员,但我遇到了另一个我仍在尝试解决的错误。我会多尝试一点,如果有更完整的反馈,我会来这里。
回答你的问题:当我第一次问的时候,我还没有做任何你问的事情。
非常喜欢。
解决方案
你是否
- 在 Wildfly 中注册一个新的 postgres 模块(使用适当的 jar)?
- 在 Wildfly 配置文件 (standalone-***.xml) 中声明数据源以及使用的驱动程序?
可以在这里找到很好的解释(参见选项#2): https ://www.stenusys.com/how_to_setup_postgresql_datasource_with_wildfly/
推荐阅读
- c - C中的Malloc 2D金字塔数组
- visual-studio-2017 - VS2017 v15.7.1 - 构建 | 发布创建不同的程序集来构建 | 重建解决方案
- css - 是否可以在输入中包含一个元素?
- c# - 使用不同的用户控件重用 Window 是否会破坏 MVVM 模式
- model - 在 spacy 中,如何使用自己在 gensim 中创建的 word2vec 模型?
- wordpress - WordPress :: add_action 插件简码
- r - 在 ifelse 条件下应用
- javascript - Fullcalendar 获取日期和时间以及步进
- eclipse-photon - 类“org.slf4j.MavenSlf4jFriend”的签名者信息与同一包中其他类的签名者信息不匹配
- spring - 从 3.4 升级到 5 后的 Spring 安全角色问题