A frustrating error
I have a very simple program.
For the jsf page:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<HTML>
<HEAD/>
<body>
<f:view>
<h:form>
<h:inputText value="#{nameBean.userName}"/>
</h:form>
</f:view>
</body>
</HTML>
For the managed-bean nameBean:
package demo;
import java.util.*;
/**
* Created by Exadel Studio
*
*/
publicclass NameBean{
String userName;
java.util.ArrayList test;
public NameBean(){
if (test==null){
test =new ArrayList();
System.out.println("titi");
}
}
public String getUserName(){
return userName;
}
publicvoid setUserName(String name){
userName = name;
}
public java.util.ArrayList getTest(){
return test;
}
publicvoid setTest(java.util.ArrayList test){
this.test = test;
}
}
And for the faces-config file:
<managed-bean>
<description>Input Value Holder</description>
<managed-bean-name>nameBean</managed-bean-name>
<managed-bean-class>demo.NameBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>userName</property-name>
<property-class>java.lang.String</property-class>
<value/>
</managed-property>
<managed-property>
<property-name>test</property-name>
<property-class>java.util.ArrayList</property-class>
<value/>
</managed-property>
</managed-bean>
When I run this sample code under Tomcat 5.5.17 I have the following error:
javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: ''.
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:206)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
javax.faces.component.UIOutput.getValue(UIOutput.java:147)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:82)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:191)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:169)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:720)
javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:623)
javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:546)
com.sun.faces.taglib.html_basic.InputTextTag.doEndTag(InputTextTag.java:524)
org.apache.jsp.pages.inputname_jsp._jspx_meth_h_inputText_0(inputname_jsp.java:155)
org.apache.jsp.pages.inputname_jsp._jspx_meth_h_form_0(inputname_jsp.java:132)
org.apache.jsp.pages.inputname_jsp._jspx_meth_f_view_0(inputname_jsp.java:100)
org.apache.jsp.pages.inputname_jsp._jspService(inputname_jsp.java:65)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
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:802)
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)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:703)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670)
org.apache.jsp.index_jsp._jspService(index_jsp.java:50)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
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:802)
The problem comes from the ArrayList field because if it's non-managed, there's no error.
Is there an evident mistake?

