# JSF-Facelets auf Tomcat - ich krieg's nicht hin



## Niridium (4. Jul 2010)

Hallo,

Ich versuche ein simples Facelets-Projekt bei mir zu Hause einzurichten, aber auch nach einigen Stunden Herum-Konfigurieren versinke ich in Tomcat-Fehlermeldungen wie "NoClassDefFoundError" oder "NoSuchMethodError".

Meine Konfiguration: Ich verwende Eclipse Java EE IDE for Web Developers V. 3.5.0 mit Eclipse Web Tools Platform. Tomcat 6.0 ist installiert, das Ganze auf Windows XP.

Ich bin dabei genau nach den Schritten im folgenden Tutorial vorgegangen: WTP Tutorials - JSF Facelets Tools Tutorial

Ich denke, dass es ein Problem mit den eingebundene JARs gibt, und sehe 3 potenzielle Fehlerquellen: Die JARs im Tomcat-Installationsverzeichnis unter "lib", die JARs im Eclipse Projekt Buildpath und die JARs im Eclipse Projekt-Verzeichnis unter web\WEB-INF\lib. Ehrlich gesagt ist mir auch nicht klar, wie das Zusammenspiel zwischen diesen drei Bibliotheksablagen funktioniert, für mich ist es einfach nur verwirrend.

Ich habe jetzt viel Zeit damit zugebracht, irgendwelche JARs aus dem Tomcat-Lib-Verzeichnis zu entfernen oder hinzuzufügen, und nur die Fehlermeldungen haben sich manchmal ein bisschen geändert.

Meine Frage ist daher: Gibt es eine simple Anleitung, nach der das Deployment aus Eclipse heraus auch tatsächlich funktioniert? Und falls jemand ein funktionierendes Facelets-Projekt erstellt hat: Welche JARs müssen dazu in welchem Verzeichnis abgelegt werden? Ich habe viel im Internet gesucht, aber gerade das JAR-Thema wird scheinbar immer ausgelassen.

Danke schon im Voraus für jede Hilfe!

Gruss, Nic


----------



## Niridium (4. Jul 2010)

Ich habe nun meine diversen Fehlversuche wieder zurückgesetzt und Tomcat neu installiert. So sieht meine JAR-Sammlung jetzt aus:

*Im Verzeichnis Tomcat/lib:*

annotations-api.jar
catalina-ant.jar
catalina-ha.jar
catalina-tribes.jar
catalina.jar
el-api.jar
jasper-el.jar
jasper-jdt.jar
jasper.jar
jsp-api.jar
servlet-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
(Einfach die Libs der Standard-Installation)

*Im Eclipse unter Project Properties > Java Build Path > Libraries:*
Ordner "Apache Tomcat v6.0..."

(Dieselben Libraries wie oben aufgeführt)
Ordner "EAR Libraries"

(ist leer)
Ordner "Facelets 1.1.14"

jsf-facelets.jar
Ordner "JRE System Library":

resources.jar
rt.jar
jsse.jar
jce.jar
dnsns.jar
sunjce_provider.jar
sunmscapi.jar
sunpksc11.jar
Ordner "JSF 1.2 (Apache MyFaces JSF Core-1.2 API 1.2.8)":

commons-beanutils.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-discovery-0.4.jar
commons-logging-1.1.1.jar
myfaces-api-1.2.8.jar
myfaces-impl-1.2.8.jar
Ordner "JSTL 1.2":

jstl-1.2.jar
Ordner "Standardized EL Library v1.0":

el-api.jar
el-ri.jar
(Wo möglich, habe ich "User Libraries" verwendet.)

*Eclipse Projekt-Verzeichnis unter web\WEB-INF\lib:*
(Dieser Ordner ist leer.)

Beim Start über Run As > Run on Server... kommt im Moment folgende Fehlermeldung beim Tomcat-Start:


```
...
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.application.WebappLifecycleListener
java.lang.ClassNotFoundException: com.sun.faces.application.WebappLifecycleListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Skipped installing application listeners due to previous error(s)
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error listenerStart
04.07.2010 18:15:21 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/JSFFaceletsTutorial] startup failed due to previous errors
04.07.2010 18:15:21 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
04.07.2010 18:15:21 org.apache.jk.common.ChannelSocket init
...
```

In meinem web-xml steht dieses:

[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>JSFFaceletsTutorial</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>/faces/*</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <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>client</param-value>
  </context-param>
  <context-param>
    <description>
	This parameter tells MyFaces if javascript code should be allowed in
	the rendered HTML output.
	If javascript is allowed, command_link anchors will have javascript code
	that submits the corresponding form.
	If javascript is not allowed, the state saving info and nested parameters
	will be added as url parameters.
	Default is 'true'</description>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <description>
	If true, rendered HTML code will be formatted, so that it is 'human-readable'
	i.e. additional line separators and whitespace will be written, that do not
	influence the HTML code.
	Default is 'true'</description>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>
	If true, a javascript function will be rendered that is able to restore the
	former vertical scroll on every request. Convenient feature if you have pages
	with long lists and you do not want the browser page to always jump to the top
	if you trigger a link or button action that stays on the same page.
	Default is 'false'
</description>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>
  </context-param>
  <servlet>
    <servlet-name>faces</servlet-name>
    <servlet-class>org.apache.myfaces.webapp.MyFacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>faces</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>faces</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  </listener>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
  <listener>
    <listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class>
  </listener>
</web-app>
[/XML]

Ich habe das Projekt einfach mit dem "New Dynamic Web Project" Wizard und dort der Konfiguration "Facelets 1.0 Project" erstellt.

Ich bin für jede Hilfe sehr dankbar!


----------



## mvitz (4. Jul 2010)

Ohne mich jetzt genau mit JSF auszukennen. Aber die meisten deiner User Libraries müssen unter WEB-INF/lib liegen. Wenn du die JSF jars nicht mit auslieferst, dann kann der Tomcat diese natürlich beim starten auch nicht laden.

EDIT: Zu beachten ist dabei noch, Doppellungen zu vermeiden (siehe el-api.jar: Diese ist sowohl unter Tomcat als auch in deiner User-Library vorhanden)


----------



## Niridium (4. Jul 2010)

Danke für die Antwort.

Ich habe den doppelten Eintrag zu el-api.jar entfernt: el-ri.jar habe ich in den Tomcat-lib-Ordner verschoben und dann die jetzt nicht mehr benötigte Library "Standardized EL Library v1.0" aus dem Eclipse Build Path entfernt.

Ich habe jetzt alle JARs aus allen Libraries ausser aus "Apache Tomcat v6.0..." und "JRE System Library" auch in den Ordner web\WEB-INF\lib kopiert. Da beginnt eben schon mein Unverständnis: Ich dachte, dass die libs im Java Build Path unter den Project Properties auch automatisch mitpubliziert werden.

Leider hat es trotzdem nicht geholfen, die Fehlermeldung blieb unverändert.


----------



## mvitz (4. Jul 2010)

Da ich bisher immer nur Probleme mit den User Libraries hatte, nutze ich die gar nicht mehr, deswegen kann ich dir da leider auch nicht helfen.

Ich persönlich würde jetzt noch zwei Dinge probieren:

1) Alle jars einmal in tomcat/lib packen und gucken ob es dann funktioniert. (Evtl. auch einmal nicht aus Eclipse starten, sondern das Projekt als war exportieren und den Tomcat "von Hand" starten)

2) Zu Beginn mal ein einfacheres Beispiel machen. Du lädst da ja massig Konfigurationen und Filter/Listener am Anfang. Ich glaube kaum, dass die alle ein muss sind, kann mich aber natürlich vertuen.


----------



## Niridium (5. Jul 2010)

Halo nochmal.

Zu 1) Ich habe nun also alle libs direkt in das Tomcat-Verzeichnis kopiert und alle User Libraries (ausser "JRE System Library") entfernt => keine Änderung, dieselben Fehlermeldungen erscheinen.

Zu 2) Ich habe ein paar Listener und "context param" auskommentiert. Tatsächlich verschwanden daraufhin die Fehlermeldungen beim Tomcat-Start, allerdings kann die Seite login.xhtml (siehe Tutorial) trotzdem nicht angezeigt werden: "HTTP Status 404 - /JSFFaceletsTutorial/login.xhtml".

Dazu noch zwei Dinge: Das Löschen der Listener "com.sun.faces.config.ConfigureListener" und "com.sun.faces.application.WebappLifecycleListener" erschien mir auch sinnvoll, da diese ja die Fehlermeldungen verursachen. Aus Google-Recherchen schliesse ich, dass es sich dabei ev. um Klassen aus der Referenz-Implementierung von Sun handelt, die bei der von mir verwendeten Apache MyFaces-Implementierung von JSF nicht dabei sind. Da tun sich aber andere Fragen auf: Was muss man sonst noch beachten, wenn man stattdessen MyFaces nutzen will? Muss ich stattdessen vielleicht andere Listener registrieren, damit die Sache läuft?

Falls es interessiert: Hier die momentane Tomcat-Ausgabe nach dem Entfernen der Listener:


```
05.07.2010 21:41:24 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFFaceletsTutorial' did not find a matching property.
05.07.2010 21:41:24 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: (...)
05.07.2010 21:41:24 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
05.07.2010 21:41:24 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 233 ms
05.07.2010 21:41:24 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
05.07.2010 21:41:24 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
05.07.2010 21:41:24 org.apache.myfaces.webapp.StartupServletContextListener dispatchInitializationEvent
INFO: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON' found, using default value false
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.SAVE_FORM_SUBMIT_LINK_IE' found, using default value false
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using default value true
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.RENDER_VIEWSTATE_ID' found, using default value true
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.STRICT_XHTML_LINKS' found, using default value true
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getLongInitParameter
INFO: No context init parameter 'org.apache.myfaces.CONFIG_REFRESH_PERIOD' found, using default value 2
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.VIEWSTATE_JAVASCRIPT' found, using default value false
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
05.07.2010 21:41:24 org.apache.myfaces.shared_impl.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Starting up Tomahawk on the MyFaces-JSF-Implementation
05.07.2010 21:41:24 org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNUNG: No mappings of FacesServlet found. Abort initializing MyFaces.
05.07.2010 21:41:24 org.apache.myfaces.webapp.StartupServletContextListener dispatchInitializationEvent
INFO: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
05.07.2010 21:41:25 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
05.07.2010 21:41:25 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
05.07.2010 21:41:25 org.apache.myfaces.webapp.StartupServletContextListener dispatchInitializationEvent
INFO: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON' found, using default value false
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.SAVE_FORM_SUBMIT_LINK_IE' found, using default value false
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using default value true
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.RENDER_VIEWSTATE_ID' found, using default value true
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.STRICT_XHTML_LINKS' found, using default value true
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getLongInitParameter
INFO: No context init parameter 'org.apache.myfaces.CONFIG_REFRESH_PERIOD' found, using default value 2
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.VIEWSTATE_JAVASCRIPT' found, using default value false
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now.
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.config.MyfacesConfig createAndInitializeMyFacesConfig
INFO: Starting up Tomahawk on the MyFaces-JSF-Implementation
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator feedStandardConfig
INFO: Reading standard config META-INF/standard-faces-config.xml
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator feedClassloaderConfigurations
INFO: Reading config : jar:file:/C:/Programme/Apache%20Software%20Foundation/Tomcat%206.0_C/lib/jsf-facelets.jar!/META-INF/faces-config.xml
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator feedClassloaderConfigurations
INFO: Reading config : jar:file:/D:/Eigene%20Dateien/Eclipse-Workspaces/Nic-Web/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFFaceletsTutorial/WEB-INF/lib/jsf-facelets.jar!/META-INF/faces-config.xml
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator feedWebAppConfig
INFO: Reading config /WEB-INF/faces-config.xml
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: Starting up MyFaces-package : myfaces-api in version : 1.2.8 from path : file:/C:/Programme/Apache%20Software%20Foundation/Tomcat%206.0_C/lib/myfaces-api-1.2.8.jar
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: Starting up MyFaces-package : myfaces-impl in version : 1.2.8 from path : file:/C:/Programme/Apache%20Software%20Foundation/Tomcat%206.0_C/lib/myfaces-impl-1.2.8.jar
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tomahawk not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tomahawk12 not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tomahawk-sandbox not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tomahawk-sandbox12 not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tomahawk-sandbox15 not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : myfaces-orchestra-core not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : myfaces-orchestra-core12 not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : trinidad-api not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : trinidad-impl not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : tobago not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : commons-el not found.
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator startLib
INFO: MyFaces-package : jsp-api not found.
05.07.2010 21:41:25 org.apache.myfaces.shared_impl.util.LocaleUtils toLocale
WARNUNG: Locale name in faces-config.xml null or empty, setting locale to default locale : de_CH
05.07.2010 21:41:25 org.apache.myfaces.config.FacesConfigurator handleSerialFactory
INFO: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
05.07.2010 21:41:25 org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
INFO: ServletContext 'D:\Eigene Dateien\Eclipse-Workspaces\Nic-Web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSFFaceletsTutorial\' initialized.
05.07.2010 21:41:25 org.apache.myfaces.webapp.StartupServletContextListener dispatchInitializationEvent
INFO: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
05.07.2010 21:41:25 org.apache.myfaces.webapp.MyFacesServlet init
INFO: MyFacesServlet for context 'D:\Eigene Dateien\Eclipse-Workspaces\Nic-Web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSFFaceletsTutorial\' initialized.
05.07.2010 21:41:25 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
05.07.2010 21:41:25 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
05.07.2010 21:41:25 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/16  config=null
05.07.2010 21:41:25 org.apache.catalina.startup.Catalina start
INFO: Server startup in 656 ms
```

Und eine zweite Sache: Mein Tomcat lässt sich gar nicht mehr manuell starten. Er meldet "The CATALINA_HOME environment variable is not defined correctly", was natürlich nicht stimmt, aber mich inzwischen nicht mehr wundert, da ich Tomcat jetzt schon zweimal neu installieren musste...

Nach wie vor wäre ich sehr dankbar für etwas Entwirrung! Gruss,
Nic


----------



## Deadalus (15. Jul 2010)

Warum verwendest du das veraltete JSF 1.2 Framework wenn es schon lange JSF 2.0 gibt. Da sind die Facelets auch direkt mit eingebaut und du brauchst keine extra Bibliotheken einzubinden. 

Alles was du dann machen must: JSF 2.0 Bibliotheken in dein WEB-INF/lib verzeichnis und es kann losgehen. 

Wenn du noch weniger Stress willst nimm glassfish 3 der hat alles an Bibliotheken was du brauchst schon dabei. 

Und noch ein tipp am Rande JSF macht mit Netbeans tausendmal mehr spaß. Also einfach Netbeans downloaden, installieren, neues webprojekt anlegen, jsf anklicken und losprogrammieren. Glassfish 3 wird von Netbeans übrigens schon mitgeliefert.


----------



## Niridium (18. Jul 2010)

Hallo,

Okay, ich habe jetzt die 2.0-Libraries von der Apache-MyFaces-Seite herunter geladen (myfaces-impl-2.0.1-SNAPSHOT.jar und myfaces-api-2.0.1-SNAPSHOT.jar) und diese anstelle der alten JARs in mein Tomcat-Verzeichnis gestellt.

Keine Veränderung, ich bekomme noch immer "HTTP Status 404", wenn ich die Seite anzeigen will. Irgendwelche weiteren Ideen?

@Deadalus: Und nichts für ungut, ich arbeite schon jahrelang mit Eclipse und werde mich in diesem Leben sicher nicht mehr umgewöhnen. 

Gruss, Nic


----------



## maki (19. Jul 2010)

Niridium hat gesagt.:


> ..
> @Deadalus: Und nichts für ungut, ich arbeite schon jahrelang mit Eclipse und werde mich in diesem Leben sicher nicht mehr umgewöhnen.
> ..



Auch nix für ungut, aber bestimmte Problemebereiche haben eben bestimmte Lösungsansätze, für JEE ist Netbeans die bessere Platform imho, wurde auch von Sun und nun Oracle so propagiert.
Aber wieso den einfachen, direkten Weg nutzen, lieber mit SNAPSHOTS rumspielen (mehr ist das hantieren mit SNAPSHOTS nie..) und frustieren lassen...


----------



## Deadalus (22. Jul 2010)

Warum verwendest du Snaphsot Bibliotheken? 
Lade dir bitte eine Stable runter oder nimm gleich die JSF Referenzimplementierung Mojarra von Sun bzw Oracle die ist auch OpenSource und fertig. 

So ich erkläre dir jetzt was du machen must um eine JSF Anwendung aufzusetzen, wie du das mit deinem Eclipse hinfrikelst ist dir überlassen. 

Du brauchst wenn du nur einen Servlet Container (Tomcat) verwendet die JSF Libraries. Diese bindest du in ein Web Projekt ein, so das sie zu deinem Servlet Container deployt werden. Also ins WEB-INF/lib Verzeichnis. 

Zusätzlich brauchst du eine web.xml mit folgenden Einträgen (sonst nichts!): 


```
<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <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>*.jsf</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsf</welcome-file>
    </welcome-file-list>
```

So und um nun noch was zu sehen brauchst du noch eine index.xhtml in die du lustige JSF Tags coden kannst. Und das wars auch schon! Denke daran *keine *Faclets Libraries und auch keinen View Handler in deiner Web.xml zu haben, da Faclets ja jetzt offiziell in den JSF Bibliotheken drinn sind.


----------



## dubai (16. Nov 2010)

Hi,

kennt jemand das Problem, dass z.B. Komponenten aus der Tomahawk Bibliothek nicht gerendert werden, sprich im Browser wird es als <t:xxxxx /> übersetzt und somit nicht angezeigt.

Ist wahrscheinlich ein Anfängerfehler, kann mir da jemand weiterhelfen?

verwendet wird: JSF 2.0, Tomcat 7.0.4, Eclipse


----------

