Für den Einstieg in JSF (myfaces) habe mehrere einfache Tutorials ausprobiert, stoße aber leider immer auf den gleichen Fehler.
Die hierbei benutze Konfig ist (web.xml)
und (faces-config.xml)
Der dazugehörige Seitenquellcode für eingabe.jsp
und ausgabe.jsp
Zum Entwickeln benutze ich Eclipse mit dem Sysdeo plugin und Tomcat 6.0. Ein Aufruf der Seite http://localhost:8080/Faces1/faces/eingabe.jsp erzeugt den obengenannten Fehler.
Beim starten erzeugt Tomcat u. a. diese Meldungen
In welche Richtung sollte ich nach dem Fehler suchen?
Code:
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:332)
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
Die hierbei benutze Konfig ist (web.xml)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>JavaServer Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JavaServer Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
Code:
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<navigation-rule>
<from-view-id>/eingabe.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/ausgabe.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>Square</managed-bean-name>
<managed-bean-class>b1.SquareBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>Berechnung eines Flächeninhaltes</title>
</head>
<body>
<f:view>
<h:form id="inputForm">
Bitte geben Sie eine Seitenlänge ein:
<h:inputText value="#{Square.length}" />
<h:commandButton value="Berechnen" action="success" />
</h:form>
</f:view>
</body>
</html>
Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>Berechnung eines Flächeninhaltes</title>
</head>
<body>
<f:view>
<h:form id="inputForm">
Ergebnis der Berechnung
Ihre Eingabe war: <h:outputText value="#{Square.length}" />
damit ist der Flächeninhalt: <h:outputText value="#{Square.area}" />
</h:form>
</f:view>
</body>
</html>
Beim starten erzeugt Tomcat u. a. diese Meldungen
so dass ich mir nicht sicher bin ob der Fehler in der konkreten Anwendung oder in der algemeinen Konfiguration des Tomcat liegt. Ich bin davon ausgegangen das es ausreicht die myfaces *.jar Dateien in das lib Verzeichnis des Server zu kopieren (zur Sicherheit habe ich die Dateien aber noch einmal extra zum Eclipse Project hinzugefügt).INFO: Starting up Tomahawk on the MyFaces-JSF-Implementation
28.03.2008 02:55:19 org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
WARNUNG: No mappings of FacesServlet found. Abort initializing MyFaces.
In welche Richtung sollte ich nach dem Fehler suchen?