JSP-Seite kann nicht aufgerufen werden

java007

Bekanntes Mitglied
Hallo Zusammen,

ich arbeite an einem Tutorial in JSP/JSF, aber leider kann die erstellte JSP-Seite nicht aufgerufen werden. Bekomme diese Fehlermeldung:

HTTP Status 404 - /HelloWorldJSF/AddUser.jsf

--------------------------------------------------------------------------------

type Status report

message /HelloWorldJSF/AddUser.jsf

description The requested resource (/HelloWorldJSF/AddUser.jsf) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/7.0.6

Den Code habe ich 1 zu 1 vom Tutorial übernommen und zwar folgendermaßen:


UserBean.java
Java:
package net.viralpatel.jsf.helloworld;

public class UserBean {
	 private int id;
	 private String name;
	 //Action method to add user
	 public String addUser() {
		 return "success";
		 }     
	 public int getId() {
		 return id;
		 }     
	 public void setId(int id) {
		 this.id = id;
		 }     
	 public String getName() {
		 return name;
		 }     
	 public void setName(String name) {
		 this.name = name;
		 } 
}


AddUser.jsp
Java:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Add New User Form</title>
</head>
<body>
<f:view>
	<p><h:message id="errors" for="User_ID" style="color:red" /></p>
	<h:form>
		<h:panelGrid border="1" columns="2">
			<h:outputText value="ID">
			</h:outputText>
			<h:inputText id="User_ID" value="#{userBean.id}" required="true">
				<f:validateLongRange minimum="1" maximum="500" />
			</h:inputText>
			<h:outputText value="Name">
			</h:outputText>
			<h:inputText value="#{userBean.name}">
			</h:inputText>
			<h:commandButton action="#{userBean.addUser}" value="Add Customer">
			</h:commandButton>
		</h:panelGrid>
	</h:form>
</f:view>
</body>
</html>

ListUser.jsp
Java:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>List of Users</title>
</head>
<body>
<f:view>
	<h:form>
		<h:outputText value="User #{userBean.name} is added successfully.">
		</h:outputText>
	</h:form>
</f:view>
</body>
</html>


faces-config.xml
[XML]

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>net.viralpatel.jsf.helloworld.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<display-name>AddUser</display-name>
<from-view-id>/AddUser.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/ListUser.jsp</to-view-id>
</navigation-case>
</navigation-rule> </faces-config>

[/XML]


Würde mich auf Tipps superfreuen.
mfg
 
Zuletzt bearbeitet:
@Maik: ich habe jetzt die fehlermeldung hinzugefügt
@SlaterB: dankeschön für den link. web.xml ist vorhanden

web.xml
[JAVA=42]<?xml version="1.0" encoding="ASCII"?>
<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_3_0.xsd" version="3.0">
<display-name>HelloWorldJSF</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name> //Servlet rot unterstrichen

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name> //Servlet rot unterstrichen

<url-pattern>*.jsf</url-pattern> // in dieser Zeile ist *.jsf rotunterstrichen
</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>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>
[/code]

dankeschön für die schnellen antworten 🙂
 
Da du niczt sagst wie du die WebApp deployest, kann man da nur raten, aber ich würde mal HelloWorldJSF aus der URL weglassen, manche IDEs deployen default auf dem Rootkontext.

Gibt es Fehlermeldungen im Log/Konsole?
 
Also ich versuche die Seite zu Starten in dem ich auf den Project-Folder gehe, dann rechtsclick --> option run on server.
So beginnt die Fehlermeldung:

24.01.2011 14:20:40 org.apache.catalina.startup.SetContextPropertiesRule begin
WARNUNG: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HelloWorldJSF' did not find a matching property.
24.01.2011 14:20:40 org.apache.catalina.startup.HostConfig deployDescriptor
SCHWERWIEGEND: Error deploying configuration descriptor HelloWorldJSF.xml
java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:927)
at java.lang.ClassLoader.loadClass(ClassLoader.java:298)
at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
....
 
du hast schwere Fehler beim Deployen die jede Wette, dass nix läuft, alt aussehen lassen
und schreibst dann anfangs dass eine bestimmte URL nicht gefunden wird?!

NoClassDefFoundError klingt nach zu wenig Libraries im lib-Verzeichnis des WebServers, dahingehend etwas im Tutorial gelesen?
 
@maki: ich benutze Apache Tomcat/7.0.6 also die aktuelle version
@SlaterB: ich habe von JSTL bis JSF 2.0 (Mojarra 2.0.3-FCS) die Bücherrei aufgefüllt 😀

ich denke web.xml ist nicht in Ordnung. Ich habe drei Zeilen des web.xml's mit Hilfe comments hervorgehoben, die bei mir rot unterstrichen werden. der einstieg in jsp jsf ist ja echt eine Qual 😀
 
[c]servlet-name[/c] ist kein Feld für einen beliebigen Text welcher Leerzeichen enthalten darf oder gar mehrfach vorkommen, sondern eine ID die fürs Mapping verwendet wird.
 
Leerzeichen-Beispiele findet man aber im Internet, gerade 'Faces Servlet',
und dass es beim Mapping wiederverwendet wird ist ja gerade der Sinn der Definition? ("eine ID die fürs Mapping verwendet wird"),
ohne Leerzeichen zu testen kann aber gewiss nicht schaden,

gibts bei rot unterstrichen keine Fehlermeldungen am Rand? XML-Validierung ist aber auch nicht immer fatal,
wenn die Entwicklungsumgebung was nicht kennt, kommt der Web-Server vielleicht trotzdem damit zurecht
 
Leerzeichen-Beispiele findet man aber im Internet, gerade 'Faces Servlet',
und dass es beim Mapping wiederverwendet wird ist ja gerade der Sinn der Definition? ("eine ID die fürs Mapping verwendet wird"),
ohne Leerzeichen zu testen kann aber gewiss nicht schaden,
Hast Recht, Leerzeichen scheinen OK zu sein, aber eindeutig muss der servlet-name schon sein laut XSD.

[xml] <xsd:unique name="web-common-servlet-name-uniqueness">
<xsd:annotation>
<xsd:documentation>

The servlet element contains the name of a servlet.
The name must be unique within the web application.

</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="javaee:servlet"/>
<xsd:field xpath="javaee:servlet-name"/>
</xsd:unique>[/xml]
 
ich habe eben nochmal nachgesehen, und zwar keine direkte fehlermeldung sondern folgendes "The word 'Servlet' is not correctly spelled" und "The word 'jsf' is not correctly spelled" ich habe den eindruck dass für mich und zwar für den einstieg eine sehr große recherche-arbeit bevorsteht ;( könnt ihr mir vielleicht referenzen nennen die in dem gebiet essentziel sind?
Vielen Dank 🙂
 
@maki
auch wenn die Nebendiskussion wenig bringt:
eindeutig ist er auch, nur in Zeile 45 ist ein Servlet definiert, in Zeile 51 dann ein Mapping dazu

@java007
ich wäre dafür, die fehlenden Libraries zur Verfügung zu stellen,
j2ee.jar usw.,
siehe auch
Application Developer's Guide (7.0.6) - Deployment



die zuletzt genannten Fehlermeldungen klingen nach Rechtschreibprüfung, egal
 
Zuletzt bearbeitet von einem Moderator:
mit Tomcat 6.0, JavaServerFaces v1.2 Project und jstl_1.2 hat es nun funktioniert
dagegen mit Tomcat 7.0, JavaServerFaces v2.0 Project und jstl_1.2 nicht, verwirrt mich irgendwie
mfg 🙂
 

Zurück
Oben