JSF Servlectexception: Verwalteter Bean "..bean" kann nicht erstellt werden

byemute

Mitglied
Hallo zusammen,

Ich arbeite im Moment gerade an einer Register Seite mit JSF und scheine es einfach nicht hinzukriegen.

Ich bekomme nun folgende Exception
Code:
javax.servlet.ServletException: Verwalteter Bean registerBean kann nicht erstellt werden. Die folgenden Probleme wurden gefunden:
- Eigenschaft registerBackingBean für verwalteten Bean "registerBean ist nicht vorhanden.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)

Mein RegisterBean ist ein ManagedBean mit ViewScope, sowie es auch mein RegisterBackingBean ist.

Wäre es jemandem möglich mir zu erklären was ich bei folgendem Code falsch gemacht habe:

register.xhtml
HTML:
<!--
	This is the register screen. Welcome to Noten Verwalter.
-->
<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">

<h:head>
	<title>Registrierung für Notenverwalter</title>
</h:head>

		<h:form>
			<h:panelGrid>
				
				<h:outputLabel for="LoginName" value="#{msgs.accountname}" />
				<h:panelGroup>
					<h:inputText id="LoginName" value="#{registerBean.userName}"
						required="true" size="15"
						binding="#{registerBackingBean.register}" />
					<h:message for="LoginName"
						errorClass="msgError" warnClass="msgWarning"
						fatalClass="msgFatal" infoClass="msgInfo"/>
				</h:panelGroup>
	
				<h:outputLabel for="Password" value="#{msgs.password}" />
				<h:panelGroup>
					<h:inputSecret id="Password" value="#{registerBean.password}"
						required="true" size="15" />
					<h:message for="Password"
						errorClass="message msgError" warnClass="msgWarning"
						fatalClass="msgFatal" infoClass="msgInfo"/>
				</h:panelGroup>
				
				<h:outputLabel for="repeatPassword" value="#{msgs.repeatPassword}" />
				<h:panelGroup>
					<h:inputSecret id="repeatPassword" value="#{registerBean.repeatPassword}"
						required="true" size="15"
						validator="#{registerBackingBean.validateUser}" />
					<h:message for="repeatPassword"
						errorClass="message msgError" warnClass="msgWarning"
						fatalClass="msgFatal" infoClass="msgInfo"/>
				</h:panelGroup>
				
				<h:outputLabel for="Vorname" value="#{msgs.vorname}" />
				<h:panelGroup>
					<h:inputText id="Vorname" value="#{registerBean.vorname}"
						required="true" size="15" />
					<h:message for="Vorname"
						errorClass="message msgError" warnClass="msgWarning"
						fatalClass="msgFatal" infoClass="msgInfo"/>
				</h:panelGroup>
				
				<h:outputLabel for="Nachname" value="#{msgs.nachname}" />
				<h:panelGroup>
					<h:inputText id="Nachname" value="#{registerBean.nachname}"
						required="true" size="15" />
					<h:message for="Nachname"
						errorClass="message msgError" warnClass="msgWarning"
						fatalClass="msgFatal" infoClass="msgInfo"/>
				</h:panelGroup>
				
				<h:outputLabel for="Klasse" value="#{msgs.klasse}" />
				<h:panelGroup>
					<h:selectOneRadio id="Klasse" value="#{registerBean.klasse}" required="true">
   						<f:selectItem itemValue="1" itemLabel="5IA09" />
   						<f:selectItem itemValue="2" itemLabel="5IS09" />
					</h:selectOneRadio>
				</h:panelGroup>
			</h:panelGrid>

			<h:commandButton id="registerButton" type="submit" value="#{msgs.registerb}" title="Register" action="#{registerBean.register}" />
			<h:commandButton value="#{msgs.cancel}" type="reset"/>
		</h:form>
</html>

RegisterBean
Java:
package beans;

import java.sql.SQLException;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.naming.NamingException;

@ManagedBean
@ViewScoped
public class RegisterBean {
	public String userName;
	public String vorname;
	public String nachname;
	public String password;
	public String repeatPassword;
	public String klasse;
	
	@ManagedProperty(value="#{registerBackingBean}")
	private RegisterBackingBean registerBackingBean;
	
	public void setLoginBackingBean(RegisterBackingBean registerBackingBean) {
		this.registerBackingBean = registerBackingBean;
	}
	
	public RegisterBean() {}
	
      public void register() throws SQLException, NamingException {
    	  boolean isValidPw = validatePassword();
    	  if(isValidPw) {
    		  int role_fk = 1;
    		  //String sql = "insert into user values ("+ Integer.valueOf(klasse)+ ", 1, "+ userName +", "+ password +", "+ nachname +", "+ vorname +");";
    		  String sql = "INSERT INTO user " 
    			    + "(klasse_fk, role_fk, username, password, name, vorname) "
    			    + "VALUES "
    			    + "('" + Integer.valueOf(klasse) + "',"
    			    + "('" + role_fk + "',"
    			    + "('" + userName + "',"
    			    + "('" + password + "',"
    			    + "('" + nachname + "',"
    			    + "('" + vorname + "')";
              try {
              	dataBaseBeans.DatabaseManager.getDatebaseManager().sendInsert(sql);
              	System.out.println("Erfolgreich Inserted");
              } catch (Exception e) {
                  System.out.println(e.getMessage());
              }  
    	  }
      }
      
      public boolean validatePassword() {
    	  boolean isValid = false;
    	  if((password.equals(repeatPassword) && password !=null)) {
    		  isValid = true;
    	  }
    	  return isValid;
      }
	
	public String getUserName() {
		return this.registerBackingBean.getUserName();
	}
	
	public void setUserName(String userName) {
		this.userName = userName;
	}
	
    public String getNachname() {
        return nachname;
    }
    
    public void setNachname(String nachname) {
        this.nachname = nachname;
    }
    
    public String getVorname() {
        return vorname;
    }
    
    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	public String getRepeatPassword() {
		return repeatPassword;
	}

	public void setRepeatPassword(String repeatPassword) {
		this.repeatPassword = repeatPassword;
	}
	
	public String getKlasse() {
		return klasse;
	}

	public void setKlasse(String klasse) {
		this.klasse = klasse;
	}
}

RegisterBackingBean
Java:
// **** 	JSF Notenverwalter RegisterBackingBean		**** //

package beans;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.naming.NamingException;

@ManagedBean
@ViewScoped
public class RegisterBackingBean {

		public RegisterBackingBean(){}	
		
		private UIInput register;
	    private String userName;
	    private String vorname;
	    private String nachname;
	
	// Validator_Methode: Überprüft ob in DB User mit diesem Passwort existiert
	 public void validateUser(FacesContext context, UIComponent component, Object value) throws SQLException, NamingException {
		userName = (String) register.getLocalValue();
        try {
            String sql = "SELECT username FROM user WHERE username = '" + userName + "'";
           // String sql = "SELECT name, vorname FROM user WHERE username = '" + userName + "' AND password = '" + value.toString() + "'";
            ResultSet rs = dataBaseBeans.DatabaseManager.getDatebaseManager().sendQuery(sql);
            if (!rs.next()) {
            	System.out.println("User existiert NICHT");
            }
            else {
            	FacesMessage message = new FacesMessage("User existiert schon!");
      			context.addMessage(component.getClientId(context),message);
      			message.setSeverity(FacesMessage.SEVERITY_ERROR);
      			throw new ValidatorException(message);	
            }
        } catch (SQLException e) {
        	System.out.println(e.getMessage());
        }
	}
	 
	// Methode setzt die loginID welche zur Validation gebraucht wird. Wird an "userid" aus login.xhtml gebunden
	public void setRegister(UIInput register) {
		this.register = register;
	}
	 
	public UIInput getRegister() {
		return register;
	}
	
	public String getUserName(){
		return this.userName;
	}

	public String getNachname() {
		return nachname;
	}

	public String getVorname() {
		return vorname;
	}
}

Falls ihr noch das Web.xml und/oder Faces-config.xml benötigt schreibt es, wollte nicht alles mit code voll schreiben :bahnhof:
 
Zuletzt bearbeitet:

Final_Striker

Top Contributor
Java:
    @ManagedProperty(value="#{registerBackingBean}")
    private RegisterBackingBean registerBackingBean;
    
    public void setLoginBackingBean(RegisterBackingBean registerBackingBean) {
        this.registerBackingBean = registerBackingBean;
    }

Deine Bean heißt
Code:
RegisterBackingBean
aber die SetMethode
Code:
setLoginBackingBean
.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
6 JSF Form Attribute nicht an Bean übergeben Web Tier 2
G HTML Fragment in Bean erzeugen? Web Tier 1
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
F JSF Bean funktioniert nicht immer.. Web Tier 3
I CSS von Client -> an Bean senden Web Tier 0
H JSF jsf/sessionScoped Bean - Bilder (jpg) werden nicht richtig dargestellt Web Tier 1
S Java Bean und Java Servlet Web Tier 2
G jsf bean erstellen die mir die aktuelle uhrzeit ausgibt als xhtml Web Tier 5
M viele Objekte des Managed Bean Web Tier 3
S [JSF] Zugriff auf Bean (Eclispe,JBoss) Web Tier 12
P JSF Prob mit xhtml / Bean / JS Web Tier 6
J JSF Initialisierung einer ApplicationScoped Bean Web Tier 2
B Berechnen und Anzeigen von Formeln aus der Chemie und Physik mit JSP und Bean Web Tier 14
H Bean-Objekte aus XML erstellen Web Tier 2
L expression language Bean && Bean Web Tier 3
C JSF Methoden in Backing-Bean als JSF-Property Web Tier 3
P JSF Merkwürdiges Verhalten einer Bean Web Tier 11
S CDI: Bean aus einem anderen jar Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
D JSF EL #{not null bean.property} Parse exception Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
G JSF Bean Vererbung Web Tier 5
J Validieren abhängiger Felder mit JEE6/Bean validation Web Tier 33
F Leere Bean? Web Tier 7
S JSF2: Managed bean aus anderer Dependency Web Tier 7
W MVC mit Bean, JSP und Servlet Web Tier 6
S Style bei fehlerhafter Eingabe (Bean Validation) ändern Web Tier 2
H Managed Bean Aufruf auf Stack legen Web Tier 10
P JSP: Liste in Bean über Session aufbauen Web Tier 6
S Bean Validation (JSF 2.0) funktioniert nicht. Web Tier 4
V Vector aus Bean "holen" / JSP Web Tier 3
B JSF session bean mit worker thread updaten Web Tier 7
K bean methode von jslt aufrufen Web Tier 7
I Eine Bean von einer anderen Bean aufrufen Web Tier 2
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
G JSF javax.faces.bean Web Tier 2
K Anfängerfrage in JSF: <h:inputText> aus Managed Bean ansprechen Web Tier 6
S Managed bean nicht initialisiert Web Tier 2
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
E Methode einer Bean aus anderer Bean aufrufen Web Tier 10
S [SelectItems value(herkunft bean)] in [UI:repeat] lädt daten nicht neu nach Web Tier 3
N MessageResources von Struts in Form-Bean Web Tier 4
N java bean in eclipse Web Tier 6
A JSF SelectOneMenu mit Werten aus Bean vorbelegen Web Tier 2
S JSF: Frage wegen managed-bean Web Tier 3
pusteblume Mehrere Objekte einer Bean Web Tier 10
M Problem mit JSP und Bean Web Tier 2
O 2 Fragen zu JSP und Bean Web Tier 4
E value übergabe an bean! aber wie? Web Tier 3
F Datei von bean aus laden Web Tier 3
N JSF kann Bean nicht finden! Web Tier 7
H JSF - Bean (scope session) - Verfallsdatum? Web Tier 3
G Mit JSTL Rückgabe von Bean Methode ausgeben Web Tier 3
D ResultSet aus Bean an JSP übergeben Web Tier 11
M JSF - Bean aus SessionScope direkt im JSF Code auslesen Web Tier 1
G Eine Instanz pro Managed Bean? Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben