JSF managed bean problem: javax.faces.FacesException: Can't
jaybee Mar 9, 2006 6:53 AMI have a problem with a managed bean in a JSF app deployed on JBoss 4.0.3. When I refer to it in a jsp like:
<h:outputText value="#{correspondor.newCorrespondence}"/> <% /* for side effect */%>
this exception is thrown:
javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'uk.gov.brightonhove.adaptability.CorrespondenceBean'.. class uk.gov.brightonhove.adaptability.CorrespondenceBean : java.lang.NullPointerException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:844) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) org.apache.jsp.jsp.formLetter_jsp._jspService(org.apache.jsp.jsp.formLetter_jsp:202) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) uk.gov.brightonhove.FilterLogin.doFilter(FilterLogin.java:48) org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
The bean compiles fine and is in the classpath of the war file when it's deployed. It is referenced in faces-config like:
<managed-bean> <managed-bean-name>correspondor</managed-bean-name> <managed-bean-class>uk.gov.brightonhove.adaptability.CorrespondenceBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>
the bean looks like
package uk.gov.brightonhove.adaptability;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import uk.gov.brightonhove.adaptability.dao.CorrespondenceDao;
import uk.gov.brightonhove.adaptability.dao.ProjectTaskDao;
import uk.gov.brightonhove.adaptability.dao.TaskTemplateDao;
import uk.gov.brightonhove.adaptability.pojo.Correspondence;
import uk.gov.brightonhove.adaptability.pojo.ProjectA;
import uk.gov.brightonhove.adaptability.pojo.ProjectTask;
import uk.gov.brightonhove.adaptability.pojo.TaskTemplate;
public class CorrespondenceBean extends BaseBean {
private Correspondence correspondence;
private ProjectTask task;
private boolean disabled;
private HomeBean home;
private ProjectA project;
public CorrespondenceBean() {
home = (HomeBean)getAdaptBeanBinding("#{homer}");
newCorrespondence();
}
protected void newCorrespondence() {
disabled = false;
correspondence = new Correspondence();
task = home.getChosenTask();
project = task.getProject();
getFormLettersForTask();
correspondence.setTemplateid((Short)formLettersForTask[0].getValue());
if (task.getDate_completed() == null) {
correspondence.setProjecttaskid(task.getProjectTaskId());
} else {
disabled = true;
// correspondence = new CorrespondenceDao().getCorrespondence()
System.out.println("todo");
}
}
//snip
}
why is my bean not found? TIA