NullPointerException in ManagedBean?

sicLotus

Bekanntes Mitglied
Hallo,

ich beschäftige mich derzeit mit JSF und habe ein kleines Projekt angelegt und finde den Fehler einfach nicht.

Ich habe eine xhtml / jsf in der folgendes steht:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.01 Transitional//EN"
"http://www.w3.org/TR/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:body>
<h1>Registrierung</h1>
<h:form>
<h:outputLabel for="email">E-Mail</h:outputLabel>
<h:inputText id="email" value="#{register.email}"/>
<h:outputLabel for="password">Passwort</h:outputLabel>
<h:inputSecret id="password" value="#{register.password}"/>
<h:commandButton value="Registrieren" action="#{registerBean.registerAccount}" />
</h:form>
</h:body>
</html>

Jetzt habe ich einen Controller, in dem steht: (Fehler hier in Zeile 21)
Java:
package music.manager;
import java.io.Serializable;
import javax.faces.bean.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import music.data.Register;

@Named
@RequestScoped
public class RegisterBean implements Serializable {
	private static final long serialVersionUID = 1L;
	

	@Inject
	private Register register;
	
	public String registerAccount() {
		System.out.println("register new account...");
		
		//create new user here
		System.out.println("email="+register.getEmail());
		return "/registerSuccess.xhtml";
	}
}

Dieser Injeziert die Data "register.java":
Java:
package music.data;
import java.io.Serializable;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
import javax.validation.constraints.Size;

@Named
@SessionScoped
public class Register implements Serializable {

	private static final long serialVersionUID = 1L;

	@Size(min=3, message="Email muss mindestens drei Zeichen besitzen")
	private String email;
	
	@Size(min=3, message="Passwort muss mindestens drei Zeichen besitzen")
	private String password;

	//+getter und setter, lass ich hier einfach mal weg
}

In der ManagedBean (Zeile 21: register.getEmail()) wirft er folgende Exception:
Caused by: java.lang.NullPointerException
at music.manager.RegisterBean.registerAccount(RegisterBean.java:24)

Weiß einer was ich falsch gemacht habe?
 

OliverZ

Mitglied
Vermutlich musst du aus
private Register register;
ein
private Register register = new Register();
machen.
Und dann halt noch getter und setter.

Gruss
 

waldek87

Mitglied
Es scheint so, dass deine RegisterBean nicht richtig injeziert wird.

Warum möchtest du denn eine Session-Scoped-Bean in eine Request-Scoped-Bean injezieren?
 

sicLotus

Bekanntes Mitglied
Es scheint so, dass deine RegisterBean nicht richtig injeziert wird.

Warum möchtest du denn eine Session-Scoped-Bean in eine Request-Scoped-Bean injezieren?

Darüber habe ich mir ehrlich gesagt noch gar nicht so sehr gedanken drüber gemacht... Das hab ich in einem Beispiel gefunden und einfach übernommen:rtfm: Sollten die beiden Beans lieber nur Request-Scoped sein? Kann der Fehler daran liegen?
 

Ähnliche Java Themen

Neue Themen


Oben