【问题标题】:How do I use Hibernate along with WildFly?如何将 Hibernate 与 WildFly 一起使用?
【发布时间】:2021-07-24 06:44:57
【问题描述】:

晚上好。
我正在尝试创建一个使用以下项目的项目:

  • 爪哇
  • JSF 2.3
  • 马文
  • CDI 2.0
  • 休眠
  • Wildfly 服务器

    我的目的是学习所有这些家伙的基础知识。 起初,我遵循了一个很棒的 [@BalusC 的教程][1],它教我如何设置和首先运行 webapp。

    我现在的问题在于将数据库与应用程序集成。我按照一些指南在互联网上搜索了一下,发现一种方法是编辑 web.xmlpersistence.xml。 (我试图让它尽可能接近 hist 教程)。
    这是我的 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>
    

    当我运行网络应用程序时,我收到以下错误:

    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" ]
    

    我想知道你们中是否有人知道我做错了什么以及我该如何解决。

    P.S.:我在WildFly's page 上读到 WildFly 有它自己的 Hibernate“版本”,一些论坛说在使用“外部”休眠源时可能会出现一些问题。但是,由于我的 Hibernate 配置与 Wildfly 的任何配置都没有任何关联(我相信如此),我想这不是问题。

    提前致谢。

    更新 #1
    我尝试了link@TacheDeChoco 发送的解决方案#2。起初它是工作人员,但我遇到了另一个我仍在尝试解决的错误。我会多尝试一点,如果有更完整的反馈,我会来这里。
    回答你的问题:当我第一次问的时候,我还没有做任何你问的事情。
    非常喜欢。

  • 【问题讨论】:

      标签: java hibernate jakarta-ee wildfly


      【解决方案1】:

      你有没有

      1. 在 Wildfly 中注册一个新的 postgres 模块(使用适当的 jar)?
      2. 在 Wildfly 配置文件 (standalone-***.xml) 中声明数据源以及使用的驱动程序?

      可以在这里找到很好的解释(参见选项#2): https://www.stenusys.com/how_to_setup_postgresql_datasource_with_wildfly/

      【讨论】:

        猜你喜欢
        • 2021-11-02
        • 1970-01-01
        • 2017-03-17
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多