# Update von jsf1.2 auf jsf2.0



## freez (11. Mrz 2011)

Hallo,

Umgebung: Tomcat 6, Eclipse Jee Helios, Java 5, SUN RI 1.2

ich möchte ein Projekt von JSF1.2 auf JSF2.0 updaten. Also habe ich mir ein leeres Webprojekt zum Testen angelegt. Habe das frische Projekt problemlos hinbekommen, indem ich die beiden JARs aus dem Mojarra von Sun ins Web-Inf Lib Verzeichnis gelegt und eine index.xhtml mit dem facelets Template template.xhtml angelegt habe.

Im bestehenden Projekt habe ich die SUN RI 1.2 aus dem Build Path raus geworfen und meine beiden Mojarra jars ins Web-INF Lib Verzeichnis rein. web.xml und faces-config.xml bestanden bereits. Ausserdem habe ich meine beiden xhtml Files mit rüber gezogen zum testen. Weiterhin habe ich in den Projekteinstellungen die FACETs auf JSF 2.0 geändert.

So, nun mein Problem. die Index.xhtml wird nicht gerendert. Ich sehe im Browser alle JSF tags (<hutputText usw.). Die bereits bestehenden Seiten werden aber komischerweise gerendert.


Index.xhtml (Aufruf: http://localhost/index.html):

```
<!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" 
	xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets">

<body>
<h:outputText value="Hello1" />
</body>
</html>
```

web.xml:

```
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Projekt</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <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>*.html</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>
  
  <context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Development</param-value>
	</context-param>

</web-app>
```

Die vorhergehenden Seiten funktionieren weiterhin. Hier ein Beispiel:

```
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello1</title>
</head>

<body>
<f:view>
                <h:outputText value="Hello1" />
</f:view>
</body>
</html>
```


Also, warum kann ich meine xhtml Files aus dem frischen Projekt nicht im bestehenden Projekt verwenden? Klar, kann man sagen, nehme halt als Vorlage die jsp Files vom alten projekt, aber ich möchte es verstehen.


----------



## bananenkasper (11. Mrz 2011)

Hast Du die facelets lib rausgenommen?
Die brauchst Du ja nicht mehr, da JSF2.0 an sich xhtml kann.

(web.xml, <view-handler>)


----------



## freez (11. Mrz 2011)

Es waren bis jetzt keine drinnen und es wurden auch keine benötigt. Mit JSF2 will ich dann Facelets nutzen.


----------



## freez (11. Mrz 2011)

Ich habe nun auch einen frischen Tomcat7 ausprobiert, mit demselben Ergebnis. Somit kann es meiner Meinung nach auch nicht an dem bestehenden Tomcat6 liegen mit seiner Konfiguration und seinen libs.


----------



## freez (11. Mrz 2011)

Es lag am Kopf der faces-config.xml. Da stand noch der Verweis auf JSF1.2 drin. Habe nun den Kopf abgeändert, und schon geht es


----------

