Ja danke die primefaces Showcase Applikation habe ich unter wildfly laufen. Toll was die heute liefern können.
Nun wollte ich aber nicht so eine große pom.xml aufbauen. Ich wollte als ersten Test nur eine Dependency von primeface und zwei java Klassen und eine xhtml ausprobieren, bevor ich das Projekt weiterentwickle.
der Buildpath enthält die OPENJDK 17
Hier meine pom
<project xmlns="
http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.himit</groupId>
<artifactId>fischerApp</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>fischerApp</name>
<url>
https://github.com/datenmuehle/java11-jsf-primefaces-archetype</url>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.faces</artifactId>
<version>2.3.17</version>
</dependency>
<!-- Unit testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<!-- primefaces components -->
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>11.0.0</version>
<classifier>jakarta</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>17</source>
<target>17</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>${project.build.directory}/web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
der folgende Fehler tritt auf:
20:45:47,432 WARN [org.jboss.modules.define] (Weld Thread Pool -- 5) Failed to define class javax.faces.webapp.FacetTag in Module "deployment.fischerApp-0.0.1.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link javax/faces/webapp/FacetTag (Module "deployment.fischerApp-0.0.1.war" from Service Module Loader): javax/servlet/jsp/tagext/TagSupport
hier die 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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>
jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
die beans.xml und die faces.config.xml sind bis auf die notwendigen Bezüge leer.
ändere ich den obigen Eintrag von jakarta auf javax ab, so kommt folgende Meldung:
Failed to define class javax.faces.webapp.FacesServlet in Module "deployment.fischerApp-0.0.1.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link javax/faces/webapp/FacesServlet (Module "deployment.fischerApp-0.0.1.war" from Service Module Loader): javax/servlet/Servlet
Obwohl die javax/faces/webapp/FacesServlet in der glassfish jar enthalten ist. die habe deshalb extra in der pom angegeben.