NullPointerException auf validator methode Teil2?

Fantasma

Aktives Mitglied
Hallo ich habe ein sehr Ähnliches Problem wie Bytemute:

Das problem ist wirklich sehr ähnlich, nur dass ich den Validator in eine eigene Klasse geschrieben habe. Auch hier soll der Validator prüfen, ob ein User bereits in der DB vorhanden ist, und Ruft indirekt einen DB Zugriff auf. (Das der DB Zugriff als solches funktioniert weis ich, weil er auch an anderen Stellen aufgerufen wird.)

Dennoch bekomme ich folgende Fehlermeldung:
HTML:
java.lang.NullPointerException
	at com.vista.util.UsuarioExisteValidator.validate(UsuarioExisteValidator.java:32)
	at javax.faces.component.UIInput.validateValue(UIInput.java:1142)
	at javax.faces.component.UIInput.validate(UIInput.java:960)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
	at javax.faces.component.UIInput.processValidators(UIInput.java:693)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIForm.processValidators(UIForm.java:240)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	at java.lang.Thread.run(Unknown Source)

Der Aufruf vom Validator im xhtml:
HTML:
           		<h:outputLabel for="login" value="Login: *" />  
           		<p:inputText id="login"   
           			value="#{loginBean.login}" required="true" label="Login">  
           		<f:validator validatorId="usuarioExisteValidator" />
           		</p:inputText>  
           		<p:message for="login" />

Der Validator selbst:
Java:
@FacesValidator(value = "usuarioExisteValidator")
public class UsuarioExisteValidator implements Validator, Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@EJB
	private ServicioSeguridad servSegur;

	@Override
	public void validate(FacesContext context, UIComponent toValidate, Object value)
			throws ValidatorException {
		
		String login = (String) value; 
		
		if (servSegur.existeUsuario(login)){
			FacesMessage message = new FacesMessage("Usuario login: "+login+" ya existe!");
			throw new ValidatorException(message);
		}
	}

}

Die Methode servSegur.existeUsuario in einer StatlessSessionBean:
Java:
public boolean existeUsuario(String login){
		Usuario compUsuario = usuario.buscarUsuario(login);
		if (compUsuario==null)return false;
		else return true;
		
	}

Und die Methode usuario.buscarUsuario(login) aus einem DAO (der auch als StatlessSessionBean implementiert ist.):*
Java:
public Usuario buscarUsuario(String login) {
		try{
			return em.createNamedQuery("Usuario.findByLogin", Usuario.class).setParameter("login", login)
				.getSingleResult();
		}catch (EntityNotFoundException ex){
			return null;
		}catch (NoResultException ex){
			return null;
		}
	}

* Wie gesagt diese letzte Methode wird auch noch von woanders aufgerufen und funktioniert. Ich teste 2x ob ein user schon existiert. einmal in der UI ueber den Validator(funst nicht), und einmal in der Logik in der Methode, die einen neuen User erstellt und diesen in die DB einfügt(funst). (Ist ein wunsch von unserem Prof sowas doppelt zu testen, deshalb).
 
S

Sym

Gast
Also,

in der Fehlermeldung steht ja drin, in welcher Zeile die NPE auftritt. Das ist doch ein Anhaltspunkt. Dann kannst Du das ja auch mit dem Debugger bearbeiten und stellst wahrscheinlich fest, dass die Bean null ist.

Und das könnte daran liegen, dass es sich um einen Validator handelt und Du die Bean nicht injecten kannst. (ByPassInterceptor ist hier ein Stichwort).

Was ist denn null?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JSF NullPointerException auf validator methode Web Tier 7
O NullPointerException bei CDI Web Tier 4
S NullPointerException in ManagedBean? Web Tier 4
J NullPointerException bei Outputwriter Web Tier 9
S NullpointerException requestgetParameterValues Web Tier 17
C NullPointerException Web Tier 4
L [RichFaces] Applikation wird mit NullPointerException beendet Web Tier 5
G SCHWERWIEGEND: NullPointerException bei Tomcat Web Tier 4
R Zugriff Validator in Tabelle (ui:repeat) auf andere Felder Web Tier 2
C Clientseitiger Validator in rich:calendar Web Tier 6
A Validator Message in JSF Web Tier 5
M JSF Zugriff auf mehrere Formulareinträge in einem Validator Web Tier 9
M Ist Dependency Injection im Validator möglich? Web Tier 15
F Frage zum Validator Web Tier 2
G JSF Validator und fortsetzen der Anwendung Web Tier 2
S Button klick soll Java methode aufrufen Web Tier 2
M JSF JSF: Methode bei versteckt aufrufen & Parameter übergeben Web Tier 6
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
Joew0815 Spring Handle All Requests Methode Web Tier 1
M rendered ruft eine Methode auf, andere aber nicht Web Tier 15
V Mittels JavaScript Methode aufrufen Web Tier 23
M JSF Button - Methode wird nicht aufgerufen Web Tier 4
K JSF Unified-EL- Methode mit Parameterübergabe Web Tier 9
P Mit EL Parameter an Methode übergeben Web Tier 5
I Im PhaseListener Service Methode aufrufen Web Tier 21
J JSF Datatable bestimmte Methode Web Tier 4
I Automatische Weiterleitung JSF mit Aufruf einer Methode Web Tier 2
M JSF: Bei Seitenaufruf eine Methode starten Web Tier 15
H JSF - Methode kann nicht aufgerufen werden Web Tier 5
M Body onUnload Java Methode aufrufen Web Tier 13
K bean methode von jslt aufrufen Web Tier 7
D <html:select> bzw. <html:option> - Methode auslösen ? Web Tier 2
D [JSF] Lifecycle Methode wird mehrfach aufgerufen Web Tier 4
F Problem mit der Methode request.getRemotePort() Web Tier 2
D Methode bei Server Startup ausführen Web Tier 2
E Methode einer Bean aus anderer Bean aufrufen Web Tier 10
S JSF: Methode mit Parametern aufrufen Web Tier 7
J Fehler Tomcat/JSP findet Methode nich Web Tier 3
G Mit JSTL Rückgabe von Bean Methode ausgeben Web Tier 3
G in validate methode auf form objekte zugreifen Web Tier 3
A Action-Methode soll Ausgabe auf der Responsepage steuern Web Tier 4
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9

Ähnliche Java Themen

Neue Themen


Oben