Witam
Od paru dni zacząłem używać mavena i chce stworzyć prostą aplikacje na JSF. Stworzylem projekt mavena: maven-archetype-webapp, potem w dependencies dodałem JSF, wygenerowałem faces-config.xml. Zrobiłem prostą strone a.xhtml, stworzyłem tomcata(uzywam IntelliJ) i uruchomiłem. Prawym na strone i: "Open in browser". Otworzyło się w chromie, ale nie renderowały się komponenty JSF. No to dodałem do web.xml mapowanie na .jsf .faces .xhtml i /faces/* no i pojawił się problem.
Od tego momentu uruchomienie nawet tak jak wczesniej (bez mapowania) daje błąd 404. nie działa ani localhost:8080/nazwa_projektu/a.xhtml/faces/jsf, ani localhost:8080/a.xhtml/jsf/faces.
Nie mam pojęcia co może być tego przyczyną, ale bije się z tym już jakiś czas i za cholere nie moge dojść o co chodzi. Na google juz przeklepałem chyba każdy możliwy link, przeczytalem artykuły, po stackoverflow szukałem i nic mi nie pomaga.
Tak więc problemy są dwa:
- Nie wiem co zrobić, zeby strona była mapowana. Wczesniej jak robiłem proste projekty IntelliJ to właśnie w mapowaniu leżał problem nie pokazujących się komponentow JSF.
- Brak komponentów JSF ;)
KOD:
a.xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Simple JSF Facelets page</title>
</h:head>
<h:body>
NAPIS NAD
<h:form>
NAPIS W
<h:inputText/>
<h:commandButton value="przycisk"/>
</h:form>
<h:commandButton value="asdada"/>
NAPIS POD
</h:body>
</html>
web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
pom.xml:
<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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.maciej</groupId>
<artifactId>Mejwn</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Mejwn Maven Webapp</name>
<a href="http://maven.apache.org">http://maven.apache.org</a>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>Mejwn</finalName>
</build>
</project>
Co mogę zrobić?
pozdrawiam!