Probleme mit JSF und ManagedBean

Fabi_3011

Neues Mitglied
Programmiere gerade das erste mal Java EE und hab mittlerweile erste Probleme mit JSF. JSP und Servlet etc sind kein Problem aber bei JSF steig ich nicht durch. Wir sollen als Studienarbeit eine Seite programmieren die sämtlich Abgeordnete des Bundestags anzeigt. Dabei soll die Partei Anzeige mit JSF gemacht werden. Derzeit benutze ich eine Entität Partei, die JSF Seite Partei.jsp und die ManagedBean ParteiBean.

Dabei bekomme ich den Fehler das die Bean nicht gefunden werden kann.
Web.xml

[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Bundestag_Web</display-name>

<welcome-file-list>
<welcome-file>index.html</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>*.jsf</url-pattern>
</servlet-mapping>

</web-app>[/XML]

Faces-config.xml

[XML]<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<managed-bean>
<managed-bean-name>parteiBean</managed-bean-name>
<managed-bean-class>de.fabian_bloss.beans.ParteiBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>partei</property-name>
<property-class>de.fabian_bloss.entities.Partei</property-class>
<value></value>
</managed-property>
</managed-bean>

</faces-config>[/XML]


Partei.jsp(JSF Seite)

Code:
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Parteien</title>
</head>
<body>
<f:view>
    <h:outputText value="#{parteiBean.partei }"/>
</f:view>
</body>
</html>
Managed Bean: ParteiBean

Java:
@ManagedBean(name="parteiBean")
@ViewScoped
public class ParteiBean 
{
    @ManagedProperty(value="#{partei}")
    Partei partei;

    private void loadPartei()
    {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("Bundestag_Web");
        EntityManager em = emf.createEntityManager();

        setPartei(em.find(Partei.class, 5));

        emf.close();
        em.close();
    }

    public Partei getPartei() {
        loadPartei();
        return partei;
    }

    public void setPartei(Partei partei) {
        this.partei = partei;
    }
}
Im Endeffekt soll die JSF Seite eigentlich nur die Bean erstellen und dort die Partei auslesen. Aber ich bekomm immer wieder den Fehler

Code:
javax.servlet.ServletException: Verwalteter Bean parteiBean kann nicht erstellt werden. Die folgenden Probleme wurden gefunden:
     - Bean- oder Eigenschaftenklasse beans.ParteiBean für verwalteten Bean parteiBean kann nicht gefunden werden.

Da ich ein kompletter Anfänger in der Java EE Programmierung bin und bis jetzt auch noch nichts im Netz gefunden hab, was mit weiterhilft. Hoff ich das jemand den Fehler sieht. Danke :)
 
Zuletzt bearbeitet:

stg

Top Contributor
Ursache für den Fehler st vermutlich die falsch benutzte
Code:
@ManagedProperty
-Annotation, aber auch sonst geht da mMn einiges schief..

  • Die managed-bean Bekanntmachung kannst du in der
    Code:
    faces-config
    komplett weglassen. Dafür hast du die
    Code:
    @ManagedBean
    -Annotation direkt in der Bean selbst.
  • Code:
    Partei
    ist offenbar eine Entity-Klasse. Da hat die
    Code:
    @ManagedProperty
    -Annotation nichts verloren. Diese nimmst du, wenn du eine Bean innerhalb einer anderen benutzen möchtest. Also auch streichen..
  • In getter- und setter würde ich keine Logik hineinpacken. Das Laden der Partei kannst du zunächst einfach in den Konstruktor packen. Beim Instanzieren der Bean wird implizit der default-Konstruktor aufgerufen.
  • Deine JSF-Seite sieht mir nach einer JSP-Seite aus. Als JSF-Seite sollte diese eher ungefähr so aussehen:
    HTML:
    <?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:f="http://java.sun.com/jsf/core"      
          xmlns:h="http://java.sun.com/jsf/html">
    
        <h:body>
        	<h:outputText value="#{parteiBean.partei}"/>
        </h:body>
    </html>
    ...und dann als xyz.xhtml abgespeichert werden.

Interessant wäre, falls das alles noch nicht hilft, außerdem noch, aus welchen Paketen du die Annations importierst.
 
Zuletzt bearbeitet:

Fabi_3011

Neues Mitglied
Danke :toll: funktioniert mittlerweile.
Lag iwie an eclipse. Die ManagedBean wurde nicht mit in die WAR gepackt.
Die ManagedBean haben wir so gelernt, aber gut zu wissen das einmalige Annotation auch reicht.
Das laden der Entität hab ich gestern auch noch in den Konstruktor.

Das mit JSF Seite als xhtml is mir nur grad neu. Wir haben es in eclipse als JSP und da erscheint mir automatisch der oben stehende code. Von daher wusste ich das nicht mal. Aber hab im Netz gerade auch überall gelesen, das JSF eigentlich eine .xhtml Seite ist. Komisch nur das wir es dann so lernen.
 

stg

Top Contributor
Es deutet vieles daraufhin, dass euer Dozent wohl selbst noch mit einer 1er-Version von JSF gearbeitet/gelernt hat. Seit JSF 2.0 hat sich einiges getan und ist deutlich komfortabler geworden. So zum Beispiel die mächtigen Annotationen, die ein Bearbeiten der faces-config nahezu unnötig machen. Auch Eclipse ist schon so weit, dass es per Annotation bekanntgemachte Beans unterstützt (Codevervollständigung usw..) Seit der 2er Version setzt JSF auch auf Facelets als render-technologie, seither haben jsp da eigentlich nichts mehr verloren...
Im Netz geistert verständlicherweise aber auch noch viel zu den alten JSF-Version herum, so dass man am Anfang gar nicht so recht weiß, was nun tatsächlich von Bedeutung ist und man neigt zu Beginn dann doch oftmals dazu ein riesiges Kauderwelsch zu programmieren. Du solltest jedenfalls direkt mit dem neuen Krams einsteigen und darauf achten, dass du auch eine aktuelle JSF Version (z.B. Mojarra 2.1.28 oder 2.2.7) verwendest, da die alten doch noch recht fehlerbehaftet sind. GlassFish wird z.B. von Haus aus mit Mojarra 2.1.6 ausgeliefert, die Version kannst du z.B. vergessen...
Aber genug vorerst, will dich auch nicht noch mehr mit weiteren Begriffen erschlagen, dir raucht vermutlich so schon ein wenig der Kopf :) Bei weiteren Fragen, frag aber einfach nochmal nach.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Probleme beim Umstieg auf Jakarta EE Allgemeines EE 5
Dimax JSP Probleme mit Java in JSP Allgemeines EE 21
OnDemand Performance Probleme wegen vieler Objekte Allgemeines EE 3
B @Startup - FileWatcher - Probleme beim Hochfahren des Servers Allgemeines EE 4
Psypsy Spring Probleme mit Datenzugriff Allgemeines EE 5
D Apache POI Probleme mit Daten(Datum) die aus Formeln entstehen Allgemeines EE 3
T Probleme mit File renameTo bzw. File delete @@ Allgemeines EE 3
B Probleme mit Templates in einem Webprojekt Allgemeines EE 6
Fu3L Probleme beim Einrichten Allgemeines EE 3
A Probleme bei der Einbindung eines Liferay Portalserver (Glassfish) Allgemeines EE 7
S Datenbankzugriff (Probleme mit Cache?!) Allgemeines EE 8
K Probleme mit Apache MyFaces 2 und ICEFaces Facelets Allgemeines EE 1
K Probleme mit Enterprise Anwendung Allgemeines EE 5
D Probleme mit Cactus Allgemeines EE 9
F <security-constraint> Probleme Allgemeines EE 2
G Probleme im Tomcat - loading WebappClassLoader Allgemeines EE 3
T Probleme mit ApplikationClient mit Sicherheitsanmeldung! Allgemeines EE 2
G Probleme mit dem Klassenpfad nach dem deployment Allgemeines EE 2
Q Probleme bei einbinden von RichFaces. Allgemeines EE 10
T Probleme mit Facelets und if foreach und when Allgemeines EE 3
V Bildupload probleme Allgemeines EE 2
T Probleme mit Komplexerer ejb-ql Abfrage! Allgemeines EE 2
R EJB Client: Probleme mit der Client.jar Allgemeines EE 2
M Probleme mit Leerzeichen bei HtmlOutputLink Allgemeines EE 5
K probleme mit <h:dataTable> Allgemeines EE 2
M probleme mit client server kommunikation Allgemeines EE 3
S Probleme mit struts - ActionServlet Allgemeines EE 6
E BackingBean Probleme Allgemeines EE 2
K JBoss AS & IDE Probleme Allgemeines EE 2
T Probleme beim Einsatz von J2EE / JBoss Allgemeines EE 4
Ö Spring, Probleme mit FlowScope und HttpServletRequest Allgemeines EE 2
J Probleme mit Struts Allgemeines EE 3
DaRolla Probleme mit Verzeichnissen (Servlet, JSP, Tomcat) Allgemeines EE 8
G Probleme mit ResultSet Allgemeines EE 9
L Probleme mit Kompilierung von JNDI Allgemeines EE 2
K Internet Explorer MIME Type Probleme Allgemeines EE 2
M Probleme beim Performancetuning des Servlets Allgemeines EE 2
G Probleme mit Validierung (Struts, validation.xml) Allgemeines EE 4
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
W Tomcat Probleme Allgemeines EE 7
FsMarine Probleme beim ausführen von JSP dateien unter Tomcat Allgemeines EE 4
E JBoss 4.0.2 - Probleme mit der Spezifikation Allgemeines EE 3
R Probleme mit Tutorial Allgemeines EE 4
M Probleme bei Aufruf von JSPs in Unterverzeichnissen Allgemeines EE 2
M Probleme beim Webservice Deployment(Sun ApplicationServer) Allgemeines EE 2
H JONAS 4.1.4 Start Probleme Allgemeines EE 2
O Probleme mit Aktualität bei JBOSS Allgemeines EE 4
A Probleme mit J2EE und Tomcat Allgemeines EE 7
R Inputstream Probleme Allgemeines EE 11
P Probleme mit File renameTo bzw. File delete Allgemeines EE 3
F Probleme mit Eclipse/JBoss Allgemeines EE 6
F JPA Inject EntityManager im JSF-ManagedBean Allgemeines EE 1
M ManagedBean, Named etc. Allgemeines EE 6
V SEVERE: Managedbean could not be created Allgemeines EE 3
N ManagedBean manuell initialisieren? Allgemeines EE 1
N JSF und AJAX - managedBean ist nicht im ServletContext Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben