Hallo,
ich habe eine Bean und eine XHTML-Seite und möchte eine SelectOneMenu gerne mit Daten aus der Datenbank füllen, bekomme aber immer eine Fehlermeldung, wenn ich deployed habe und die Seite dann aufrufe.
Hier mal die Fehlermeldung (diese wird mir dann direkt im eclipseinternen Browser angezeigt):
Hier mal die RegisterAction.java:
Anstelle der Methode listAnrede() habe ich auch schon eine solche in dem Bean gehabt - mit dem gleichen "Erfolg":
Hier die XHTML-Seite:
Kann mir da bitte jemand weiterhelfen? Bekomme das absolut nicht gebacken und finde auch nichts passendes (habe hier auch schon den Beitrag List<SelectMenu> durchgelesen, hat mir aber nichts gebracht ).
Vielen Dank und Grüße,
Dirk[/code][/quote]
ich habe eine Bean und eine XHTML-Seite und möchte eine SelectOneMenu gerne mit Daten aus der Datenbank füllen, bekomme aber immer eine Fehlermeldung, wenn ich deployed habe und die Seite dann aufrufe.
Hier mal die Fehlermeldung (diese wird mir dann direkt im eclipseinternen Browser angezeigt):
Exception during request processing:
Caused by javax.servlet.ServletException with message: ""
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:150)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:379)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:506)
org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:73)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:566)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
java.lang.Thread.run(Unknown Source)Caused by java.lang.NullPointerException with message: ""
com.sun.facelets.util.DevTools.writeVariables(DevTools.java:168)
com.sun.facelets.util.DevTools.writeVariables(DevTools.java:147)
com.sun.facelets.util.DevTools.debugHtml(DevTools.java:109)
com.sun.facelets.FaceletViewHandler.handleRenderException(FaceletViewHandler.java:692)
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:660)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:204)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:150)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:379)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:506)
org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:73)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:566)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
java.lang.Thread.run(Unknown Source)
Hier mal die RegisterAction.java:
Code:
package de.autohaus;
import static org.jboss.seam.ScopeType.EVENT;
import static org.jboss.seam.annotations.Outcome.REDISPLAY;
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import java.util.Date;
import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import static javax.persistence.PersistenceContextType.EXTENDED;
import org.hibernate.validator.Valid;
import org.jboss.seam.annotations.Destroy;
// import org.jboss.seam.annotations.IfInvalid;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.security.Restrict;
import org.jboss.seam.ejb.SeamInterceptor;
import org.jboss.seam.log.Log;
import de.autohaus.benutzerverwaltung.Benutzerverwaltung;
import de.autohaus.benutzerverwaltung.KundeCreateAdresseException;
import de.autohaus.benutzerverwaltung.KundeDuplikatException;
import de.autohaus.benutzerverwaltung.db.Kunde;
import de.autohaus.benutzerverwaltung.db.Adresse;
import de.autohaus.benutzerverwaltung.db.Anrede;
import de.autohaus.benutzerverwaltung.db.Login;
import de.autohaus.benutzerverwaltung.db.Bank;
import de.autohaus.benutzerverwaltung.db.BankNotFoundException;
import de.autohaus.benutzerverwaltung.db.Bankverbindung;
import static de.autohaus.benutzerverwaltung.db.Kunde.FIND_KUNDEN_BY_NACHNAME;
import static de.autohaus.benutzerverwaltung.db.Kunde.PARAM_KUNDEN_NACHNAME;
@Stateful
@Scope(EVENT)
@Name("registerAction")
// TODO @Restrict("#{not identity.loggedIn}")
public class RegisterAction implements Register {
@Logger
Log log;
@In
private Anrede anrede;
@In
private Adresse adresse;
@In
private Bank bank;
@In
private Bankverbindung bankverbindung;
@In
private Login login;
@In @Valid
private Kunde kunde;
@EJB
private Benutzerverwaltung bv;
@PersistenceContext
private EntityManager em;
@In
private transient FacesContext facesContext;
private String verify;
public RegisterAction() {
log.debug("IM KONSTRUKTOR");
}
@SuppressWarnings("unchecked")
public List<SelectItem> listAnrede() {
List<SelectItem> anreden = null;
anreden = em.createQuery("from Anrede s").getResultList();
return anreden;
}
public String register() {
log.info(kunde.getAdresse() + "");
List<Kunde> kunden = new ArrayList<Kunde>();
//Anrede anrede = bv.findAnredeById(Long.valueOf(1));
//anrede.setAnrede("Bla");
//log.info("BV: " + anrede);
bankverbindung.setBank(bank);
kunde.setAnrede(anrede);
kunde.setBankverbindung(bankverbindung);
kunde.setAdresse(adresse);
kunde.setLogin(login);
kunde.rolle = "kunde";
Calendar calendar = new GregorianCalendar();
calendar.setTimeZone(TimeZone.getTimeZone("ECT"));
Date anmeldeDatum = calendar.getTime();
kunde.setAnmeldeDatum(anmeldeDatum);
kunden.add(kunde);
log.info("Kunde: " + kunde);
log.info("BV: " + bv);
Collection<Kunde> tmp = null;
try {
tmp = bv.createKunden(kunden);
} catch(KundeDuplikatException kde) {
// TODO
System.out.println("!!! 1");
kde.printStackTrace();
} catch(KundeCreateAdresseException kcae) {
// TODO
System.out.println("!!! 2");
kcae.printStackTrace();
} catch(Exception e) {
log.error(e.getMessage());
e.printStackTrace();
}
}
public String getVerify()
{
return verify;
}
public void setVerify(String verify)
{
this.verify = verify;
}
@Destroy @Remove
public void destroy() {}
}
Anstelle der Methode listAnrede() habe ich auch schon eine solche in dem Bean gehabt - mit dem gleichen "Erfolg":
Code:
@SuppressWarnings("unchecked")
public Collection<Anrede> listAnrede() {
Collection<Anrede> anreden = null;
anreden = bv.findAllAnreden();
return anreden;
}
Hier die XHTML-Seite:
Code:
<h:form id="register" styleClass="">
<h:selectOneMenu value="#{anrede.anrede}">
<f:selectItems value="#{registerAction.listAnrede()}" var="p" label="p.getId()" />
</h:selectOneMenu>
...
</h:form>
Kann mir da bitte jemand weiterhelfen? Bekomme das absolut nicht gebacken und finde auch nichts passendes (habe hier auch schon den Beitrag List<SelectMenu> durchgelesen, hat mir aber nichts gebracht ).
Vielen Dank und Grüße,
Dirk[/code][/quote]