| Good day I am porting an existing JSF 2.3 application from WildFly 14 to latest WildFly 17. Using mvn clean package works 100% with zero warnings. When I try to deploy the war using a plethora of different methods, all of them fail when trying to setup the Hibernate persistence unit. Code samples below are for WildFly 17 Here is my pom file: [code] <?xml version="1.0" encoding="UTF-8"?> <!-- EDSNext Copyright (C) 2017-2018, MegChem (Pty) Ltd This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. --> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- Model Version --> <modelVersion>4.0.0</modelVersion> <!-- Application package information --> <groupId>com.megchemsa</groupId> <artifactId>edsnext</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <!-- Application final name and URL --> <name>$ {project.artifactId}</name> <description>EDSNext</description> <url>http://edsnext.headoffice.megchem.co.za</url> <!-- Properties --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> <!-- mvn repositories --> <repositories> <repository> <id>JBoss</id> <name>public-jboss</name> <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url> </repository> <repository> <id>java.net-maven2-SNAPSHOT-repository</id> <name>Java.net SNAPSHOT-Repository for Maven</name> <url>https://maven.java.net/content/repositories/snapshots/</url> <layout>default</layout> </repository> <repository> <id>java.net-maven2-repository</id> <name>Java.net Repository for Maven</name> <url>https://maven.java.net/content/repositories/releases/</url> <layout>default</layout> </repository> <repository> <id>oss.sonatype.org</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </repository> <repository> <id>bintray-snapshot</id> <name>libs-snapshot</name> <url>http://oss.jfrog.org/artifactory/libs-snapshot</url> </repository> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>bintray-deluan-maven</id> <name>bintray</name> <url>http://dl.bintray.com/deluan/maven</url> </repository> </repositories> <!-- Dependencies --> <dependencies> <Unable to render embedded object: File (-- Server specific dependencies for WildFly 14 --> <) not found.-- https://mvnrepository.com/artifact/org.wildfly.core/wildfly-core-feature-pack --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>8.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>5.0.5.Final</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-search-orm</artifactId> <version>5.10.5.Final</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.faces</groupId> <artifactId>jboss-jsf-api_2.3_spec</artifactId> <version>2.3.9.SP02</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.ejb</groupId> <artifactId>jboss-ejb-api_3.2_spec</artifactId> <version>1.0.2.Final</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.3.9.SP02</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.el</groupId> <artifactId>jboss-el-api_3.0_spec</artifactId> <version>1.0.13.Final</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.servlet</groupId> <artifactId>jboss-servlet-api_4.0_spec</artifactId> <version>1.0.0.Final</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.annotation</groupId> <artifactId>jboss-annotations-api_1.2_spec</artifactId> <version>1.0.2.Final</version> </dependency> <!-- Runtime dependencies. --> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.8.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.11</version> </dependency> <!-- Need to replace shiro and move to KeyCloak to be able to run on Java 11 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>7.0.4</version> </dependency> <dependency> <groupId>org.primefaces.extensions</groupId> <artifactId>primefaces-extensions</artifactId> <version>7.0.1</version> </dependency> <dependency> <groupId>org.omnifaces</groupId> <artifactId>omnifaces</artifactId> <version>3.3</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.5</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>com.intellij</groupId> <artifactId>annotations</artifactId> <version>12.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M2</version> </dependency> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </dependency> <!-Text templating-> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> </dependencies> <!-- Build settings --> <build> <finalName>${project.artifactId} </finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M2</version> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>3.0</version> </requireMavenVersion> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.7</version> <configuration> <generateBackupPoms>false</generateBackupPoms> </configuration> </plugin> </plugins> </build> </project> [/code] The error I get in the server log is: [code] 08:48:53,006 INFO [org.hibernate.orm.beans] (ServerService Thread Pool – 76) HHH10005004: Stopping BeanContainer : org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl@7b81609b 08:48:53,010 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool – 76) MSC000001: Failed to start service jboss.persistenceunit."edsnext.war#PostgresDS": org.jboss.msc.service.StartException in service jboss.persistenceunit."edsnext.war#PostgresDS": javax.persistence.PersistenceException: [PersistenceUnit: PostgresDS] Unable to build Hibernate SessionFactory at org.jboss.as.jpa@17.0.0.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:198) at org.jboss.as.jpa@17.0.0.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:128) at org.wildfly.security.elytron-private@1.9.1.Final//org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:649) at org.jboss.as.jpa@17.0.0.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:212) at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982) at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at java.base/java.lang.Thread.run(Thread.java:834) at org.jboss.threads@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485) Caused by: javax.persistence.PersistenceException: [PersistenceUnit: PostgresDS] Unable to build Hibernate SessionFactory at org.hibernate@5.3.10.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1016) at org.hibernate@5.3.10.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:942) at org.hibernate.jipijapa-hibernate5-3@17.0.0.Final//org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44) at org.jboss.as.jpa@17.0.0.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:170) ... 9 more Caused by: java.lang.NullPointerException at java.base/java.lang.String$CaseInsensitiveComparator.compare(String.java:1224) at java.base/java.lang.String$CaseInsensitiveComparator.compare(String.java:1218) at java.base/java.util.TreeMap.getEntryUsingComparator(TreeMap.java:374) at java.base/java.util.TreeMap.getEntry(TreeMap.java:343) at java.base/java.util.TreeMap.get(TreeMap.java:277) at org.hibernate@5.3.10.Final//org.hibernate.dialect.function.SQLFunctionRegistry.findSQLFunction(SQLFunctionRegistry.java:45) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findSQLFunction(SessionFactoryHelper.java:385) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.tree.IdentNode.getDataType(IdentNode.java:366) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:157) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:1018) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:786) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:677) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:313) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:261) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:271) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:191) at org.hibernate@5.3.10.Final//org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:143) at org.hibernate@5.3.10.Final//org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:119) at org.hibernate@5.3.10.Final//org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate@5.3.10.Final//org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153) at org.hibernate@5.3.10.Final//org.hibernate.query.spi.NamedQueryRepository.checkNamedQueries(NamedQueryRepository.java:157) at org.hibernate@5.3.10.Final//org.hibernate.internal.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:574) at org.hibernate@5.3.10.Final//org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:321) at org.hibernate@5.3.10.Final//org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate@5.3.10.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) ... 11 more 08:48:53,023 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "edsnext.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"edsnext.war#PostgresDS\"" => "javax.persistence.PersistenceException: [PersistenceUnit: PostgresDS] Unable to build Hibernate SessionFactory Caused by: javax.persistence.PersistenceException: [PersistenceUnit: PostgresDS] Unable to build Hibernate SessionFactory Caused by: java.lang.NullPointerException"}} [/code] And my persistence.xml file: [code] <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="PostgresDS" transaction-type="JTA"> <jta-data-source>java:/PostgresDS</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL94Dialect"/> <property name="hibernate.show_sql" value="false"/> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/edsdb"/> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> <property name="hibernate.jdbc.batch_size" value="25"/> <property name="hibernate.order_inserts" value="true"/> <property name="hibernate.order_updates" value="true"/> <property name="hibernate.connection.username" value="user"/> <property name="hibernate.connection.password" value="password"/> <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> </properties> </persistence-unit> </persistence> [/code] What would be the reason for WildFly 15 -17 to fail like this whereas WildFly 14.0.1.FINAL works 100% Same system Ubuntu 18.04 with openjdk-11 The culprit seems to be this Native Query (and yes the tablefunc extension is enabled with correct privileges in PostgreSQL ) @NamedNativeQuery( name = "PartialHierarchyDisplay", query = "SELECT t.emp_aid, t.supervisor_emp_aid, t.level, t.branch, t.pos " + "FROM connectby('human_resources.emp_info', 'emp_aid', 'emp_supervisor', 'emp_last_name', :empAid, :treeDepth, '~') " + "t(emp_aid bigint, supervisor_emp_aid bigint, level integer, branch text, pos integer)", resultSetMapping = "PartialHierarchyDisplay") @SqlResultSetMapping( name = "PartialHierarchyDisplay", classes = @ConstructorResult( targetClass = PartialHierarchyDisplay.class, columns = { @ColumnResult(name = "emp_aid"), @ColumnResult(name = "supervisor_emp_aid"), @ColumnResult(name = "level"), @ColumnResult(name = "branch"), @ColumnResult(name = "pos") } )) |