# JSF Exception: Could not retrieve value of component .



## Guest (18. Sep 2007)

Hallo Leute!

Ich habe wieder ein Problem mit JSF (ich verzweifle mit dieser Technologie), doch diesen kann ich nicht mehr alleine lösen. Hoffentlich könnt ihr mir helfen.

Ich benutze:
 -Tomcat 5.5.25
 - MyFaces 1.1.5
 - JSTL 1.1.0
 - IDE: Eclipse

Habe bei folgender Seite ein Problem:

```
<h:form>
		<h:outputText id="otMessage"></h:outputText>
		

		<h:outputLabel for="itBezeichnung">Bezeichnung</h:outputLabel>
		<h:inputText value="#{backing_eigenschaftNeu.bezeichnung}" id="itBezeichnung"></h:inputText>
		<h:message for="itBezeichnung"></h:message>
		

		<h:outputLabel for="cbPflicht">Pflichtfeld</h:outputLabel>
		<h:selectBooleanCheckbox id="cbPflicht"></h:selectBooleanCheckbox>
		

		<h:outputLabel for="somDatentyp">Datentyp</h:outputLabel>
		<h:selectOneMenu id="somDatentyp" >
		</h:selectOneMenu>
		<h:message for="somDatentyp"></h:message>
		

		<h:commandButton id="cbEigenschaftErstellen" value="Erstellen"></h:commandButton>
	</h:form>
```

Der Fehler tritt nur auf wenn ich das Value-Attribut verwende, wenn es leer gelassen wird, wird die Seite normal angezeigt.

Mein Managed-Bean

```
public class EigenschaftNeu
{
	private HtmlOutputText otMessage = new HtmlOutputText();
	private HtmlSelectOneMenu somDatentyps = new HtmlSelectOneMenu();
	
	private String bezeichnung = "";
	private boolean pflichtfeld = false;
	private ArrayList<SelectItem> datentyps = new ArrayList<SelectItem>();
	
	private EigenschaftNeu()
	{
//		at.caps.security.Login.login(FacesContext.getCurrentInstance());
		
		try
		{
			for(Datentyp datatyp : Datentyp.loadAllDatentyp())
			{
				datentyps.add(new SelectItem(datatyp.getDatentypID() + "", datatyp.getBezeichnung()));
			}
		} catch (SQLException e)
		{
			otMessage.setValue("Konnte nicht mit der Datenbank verbinden");
			e.printStackTrace();
		}
	}
	
	public String onEigenschaftErstellen()
	{
		System.out.println(bezeichnung + "---" + pflichtfeld + "---" );
		return null;
	}

	public HtmlOutputText getOtMessage()
	{
		return otMessage;
	}

	public void setOtMessage(HtmlOutputText otMessage)
	{
		this.otMessage = otMessage;
	}

	public HtmlSelectOneMenu getSomDatentyps()
	{
		return somDatentyps;
	}

	public void setSomDatentyps(HtmlSelectOneMenu somDatentyps)
	{
		this.somDatentyps = somDatentyps;
	}

	public String getBezeichnung()
	{
		return bezeichnung;
	}

	public void setBezeichnung(String bezeichnung)
	{
		this.bezeichnung = bezeichnung;
	}

	public boolean isPflichtfeld()
	{
		return pflichtfeld;
	}

	public void setPflichtfeld(boolean pflichtfeld)
	{
		this.pflichtfeld = pflichtfeld;
	}

	public ArrayList<SelectItem> getDatentyps()
	{
		return datentyps;
	}

	public void setDatentyps(ArrayList<SelectItem> datentyps)
	{
		this.datentyps = datentyps;
	}

}
```

Und faces-config.xml:


```
<managed-bean>
		<managed-bean-name>
		backing_eigenschaftNeu</managed-bean-name>
		<managed-bean-class>
		at.caps.webinterface.EigenschaftNeu</managed-bean-class>
		<managed-bean-scope>
		request</managed-bean-scope>
	</managed-bean>
```

Zum Schluss noch der Stacktrace:

```
javax.servlet.ServletException: Could not retrieve value of component with path : {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /eigenschaftNeu.jsp][Class: javax.faces.component.html.HtmlForm,Id: _idJsp0][Class: javax.faces.component.html.HtmlInputText,Id: itBezeichnung]}
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

javax.faces.FacesException: Could not retrieve value of component with path : {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /eigenschaftNeu.jsp][Class: javax.faces.component.html.HtmlForm,Id: _idJsp0][Class: javax.faces.component.html.HtmlInputText,Id: itBezeichnung]}
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

org.apache.jasper.JasperException: Could not retrieve value of component with path : {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /eigenschaftNeu.jsp][Class: javax.faces.component.html.HtmlForm,Id: _idJsp0][Class: javax.faces.component.html.HtmlInputText,Id: itBezeichnung]}
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

javax.faces.FacesException: Could not retrieve value of component with path : {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /eigenschaftNeu.jsp][Class: javax.faces.component.html.HtmlForm,Id: _idJsp0][Class: javax.faces.component.html.HtmlInputText,Id: itBezeichnung]}
	org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:227)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
	javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005finputText_005f0(eigenschaftNeu_jsp.java:284)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005fform_005f0(eigenschaftNeu_jsp.java:188)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_f_005fview_005f0(eigenschaftNeu_jsp.java:139)
	org.apache.jsp.eigenschaftNeu_jsp._jspService(eigenschaftNeu_jsp.java:81)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

javax.faces.el.EvaluationException: Cannot get value for expression '#{backing_eigenschaftNeu.bezeichnung}'
	org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:405)
	javax.faces.component.UIOutput.getValue(UIOutput.java:80)
	org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:223)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
	javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005finputText_005f0(eigenschaftNeu_jsp.java:284)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005fform_005f0(eigenschaftNeu_jsp.java:188)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_f_005fview_005f0(eigenschaftNeu_jsp.java:139)
	org.apache.jsp.eigenschaftNeu_jsp._jspService(eigenschaftNeu_jsp.java:81)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

javax.faces.FacesException: java.lang.IllegalAccessException: Class org.apache.myfaces.shared_impl.util.ClassUtils can not access a member of class at.caps.webinterface.EigenschaftNeu with modifiers "private"
	org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:292)
	org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:268)
	org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:49)
	org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314)
	org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:54)
	org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:54)
	org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570)
	org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
	org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
	org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
	javax.faces.component.UIOutput.getValue(UIOutput.java:80)
	org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:223)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
	javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005finputText_005f0(eigenschaftNeu_jsp.java:284)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005fform_005f0(eigenschaftNeu_jsp.java:188)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_f_005fview_005f0(eigenschaftNeu_jsp.java:139)
	org.apache.jsp.eigenschaftNeu_jsp._jspService(eigenschaftNeu_jsp.java:81)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)


root cause 

java.lang.IllegalAccessException: Class org.apache.myfaces.shared_impl.util.ClassUtils can not access a member of class at.caps.webinterface.EigenschaftNeu with modifiers "private"
	sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
	java.lang.Class.newInstance0(Unknown Source)
	java.lang.Class.newInstance(Unknown Source)
	org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:277)
	org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:268)
	org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:49)
	org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314)
	org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:54)
	org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:54)
	org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570)
	org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
	org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
	org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
	javax.faces.component.UIOutput.getValue(UIOutput.java:80)
	org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:223)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
	org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
	javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498)
	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005finputText_005f0(eigenschaftNeu_jsp.java:284)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_h_005fform_005f0(eigenschaftNeu_jsp.java:188)
	org.apache.jsp.eigenschaftNeu_jsp._jspx_meth_f_005fview_005f0(eigenschaftNeu_jsp.java:139)
	org.apache.jsp.eigenschaftNeu_jsp._jspService(eigenschaftNeu_jsp.java:81)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
	org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
	org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
	org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
	org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
	org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
```

Tut mir leid, wenn es unübersichtlich geworden ist,.
Wäre wirklich spitze wenn ihr mir erklären könntet warum ich diesen Fehler bekomme.

Danke


----------



## SnooP (18. Sep 2007)

Dein Standard-Konstruktor darf nicht private sein.


----------



## Gast (18. Sep 2007)

OMG.
Vielen Dank, was für ein Musterbsp. für den Wald vor lauter Bäumen nicht sehen.


----------



## SnooP (18. Sep 2007)

Jo sowas ist ätzend...

Es empfiehlt sich bei den Tomcat-Exceptions immer zuerst die letzte anzugucken  ... und dort war das Problem, dass man sich dann nicht verwirren lassen darf, dass es ja nen getter für bezeichnung gab  ...

Für das Verständnis und Lernen empfiehlt es sich zudem, das Remote-Debugging mit Eclipse oder der IDE deiner Wahl einzustellen... siehe dafür in die Tomcat-Doku...


----------



## Guest (19. Sep 2007)

Du hast mir damit auf jeden Fall sehr geholfen.
Aber könnte mir noch jemand bei diesem Problem helfen und zwar wird die Methode, welche über das Action-Attribut angegeben ist, nicht mehr aufgerufen.

faces-config.xml gleich wie oben

JSF-Seite

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view>
	<html>
	<head>
	<meta http-equiv="Content-Type"
		content="text/html; charset=windows-1252" />
	<title>Neue Eigenschaft erstellen</title>
	<link type="text/css" rel="stylesheet" href="template/screen.css" />
	</head>
	<body>
	
	<div class="container"> <jsp:include
		page="/template/Header.jspf" />

	<div class="content">

	<div class="navigation">
	<h2>Navigation</h2>

	</div>

	 

	<div class="maincontent">
	<h1>Eigenschaften verwalten</h1>
	<h:form>
		<h2>Neue Eigenschaft</h2>
		<h:outputText id="otMessage"
			binding="#{backing_eigenschaftNeu.otMessage}"></h:outputText>
		

		<h:outputLabel for="itBezeichnung">Bezeichnung</h:outputLabel>
		<h:inputText value="#{backing_eigenschaftNeu.bezeichnung}"
			id="itBezeichnung"></h:inputText>
		<h:message for="itBezeichnung"></h:message>
		

		<h:outputLabel for="cbPflicht">Pflichtfeld</h:outputLabel>
		<h:selectBooleanCheckbox value="#{backing_eigenschaftNeu.pflichtfeld}"
			id="cbPflicht"></h:selectBooleanCheckbox>
		

		<h:outputLabel for="somDatentyp">Datentyp</h:outputLabel>
		<h:selectOneMenu id="somDatentyp"
			binding="#{backing_eigenschaftNeu.somDatentyps}">
			<f:selectItems value="#{backing_eigenschaftNeu.datentyps}" />
		</h:selectOneMenu>
		<h:message for="somDatentyp"></h:message>
		

		<h:commandButton id="cbEigenschaftErstellen" value="Erstellen"
			action="#{backing_eigenschaftNeu.onEigenschaftErstellen}">
		</h:commandButton>

		<h2>Bestehende Eigenschaften</h2>
		<h:dataTable border="1" var="curCol"
			value="#{backing_eigenschaftNeu.eigenschaften}"
			binding="#{backing_eigenschaftNeu.dtTabelle}">
			<h:column id="column1">
				<h:inputText value="#{curCol.bezeichnung}"></h:inputText>
				<f:facet name="header">
					<h:outputText value="Bezeichnung"></h:outputText>
				</f:facet>
			</h:column>
			<h:column id="column2">
				<h:selectBooleanCheckbox value="#{curCol.pflichtfeld}"></h:selectBooleanCheckbox>
				<f:facet name="header">
					<h:outputText value="Pflichtfeld"></h:outputText>
				</f:facet>
			</h:column>
			<h:column id="column3">
				<h:selectOneMenu value="#{curCol.datentyp.datentypID}">
					<f:selectItems value="#{backing_eigenschaftNeu.datentyps}" />
				</h:selectOneMenu>
				<f:facet name="header">
					<h:outputText value="Datentyp"></h:outputText>
				</f:facet>
			</h:column>
		</h:dataTable>
		<h:commandButton value="Ändern" id="cbAendern"
			action="#{backing_eigenschaftNeu.onEigenschaftenUpdaten}"></h:commandButton>

	</h:form></div>

	</div>

	 <jsp:include page="template/Footer.jspf" />
	</div>
	</body>
	</html>
</f:view>
```

ManagedBean

```
package at.caps.webinterface;

import java.sql.SQLException;
import java.util.ArrayList;

import javax.faces.component.html.HtmlDataTable;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import at.caps.database.beans.Datentyp;
import at.caps.database.beans.Eigenschaft;

public class EigenschaftNeu
{
	private HtmlOutputText otMessage = new HtmlOutputText();
	private HtmlSelectOneMenu somDatentyps = new HtmlSelectOneMenu();
	private HtmlDataTable dtTabelle = new HtmlDataTable();

	private String bezeichnung = "";
	private boolean pflichtfeld = false;
	private ArrayList<SelectItem> datentyps = new ArrayList<SelectItem>();
	private ArrayList<Eigenschaft> eigenschaften = new ArrayList<Eigenschaft>();

	public EigenschaftNeu()
	{
		// at.caps.security.Login.login(FacesContext.getCurrentInstance());

		try
		{
			// Laden der Datentypen
			for (Datentyp datatyp : Datentyp.loadAllDatentyp())
			{
				datentyps.add(new SelectItem(datatyp.getDatentypID() + "",
						datatyp.getBezeichnung()));
			}
			
			loadEigenschaften();
		} catch (SQLException e)
		{
			otMessage.setValue("Konnte nicht mit der Datenbank verbinden");
			e.printStackTrace();
		}
	}

	private void loadEigenschaften()
	{
		try
		{
			// Laden der bestehenden Eigenschaften
			for (Eigenschaft eigenschaft : Eigenschaft.loadAllEigenschaft())
			{
				eigenschaften.add(eigenschaft);
			}
		} catch (SQLException e)
		{
			otMessage.setValue("Konnte nicht mit der Datenbank verbinden");
			e.printStackTrace();
		}
	}

	public String onEigenschaftErstellen()
	{
		System.out.println("store");
		try
		{
			int datentyp = Integer.parseInt((String) somDatentyps.getValue());
			Eigenschaft eigenschaft = new Eigenschaft(bezeichnung, pflichtfeld,
					datentyp);
			eigenschaft.storeEigenschaft();
			

			bezeichnung = "";
			pflichtfeld = false;
			
			loadEigenschaften();
		} catch (NumberFormatException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e)
		{
			otMessage.setValue("Konnte nicht mit der Datenbank verbinden");
			e.printStackTrace();
		}
		
		return null;
	}
	
	public String onEigenschaftenUpdaten() 
	{
		System.out.println("update");
		try
		{
			for(Eigenschaft eigenschaft : eigenschaften)
			{
				eigenschaft.updateEigenschaft();
			}
						
			loadEigenschaften();
		} catch (NumberFormatException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e)
		{
			otMessage.setValue("Konnte nicht mit der Datenbank verbinden");
			e.printStackTrace();
		}
		
		return null;
	}

	public HtmlOutputText getOtMessage()
	{
		return otMessage;
	}

	public void setOtMessage(HtmlOutputText otMessage)
	{
		this.otMessage = otMessage;
	}

	public HtmlSelectOneMenu getSomDatentyps()
	{
		return somDatentyps;
	}

	public void setSomDatentyps(HtmlSelectOneMenu somDatentyps)
	{
		this.somDatentyps = somDatentyps;
	}

	public String getBezeichnung()
	{
		return bezeichnung;
	}

	public void setBezeichnung(String bezeichnung)
	{
		this.bezeichnung = bezeichnung;
	}

	public boolean isPflichtfeld()
	{
		return pflichtfeld;
	}

	public void setPflichtfeld(boolean pflichtfeld)
	{
		this.pflichtfeld = pflichtfeld;
	}

	public ArrayList<SelectItem> getDatentyps()
	{
		return datentyps;
	}

	public void setDatentyps(ArrayList<SelectItem> datentyps)
	{
		this.datentyps = datentyps;
	}

	public ArrayList<Eigenschaft> getEigenschaften()
	{
		return eigenschaften;
	}

	public void setEigenschaften(ArrayList<Eigenschaft> eigenschaften)
	{
		this.eigenschaften = eigenschaften;
	}

	public HtmlDataTable getDtTabelle()
	{
		return dtTabelle;
	}

	public void setDtTabelle(HtmlDataTable dtTabelle)
	{
		this.dtTabelle = dtTabelle;
	}
}
```

Bitte, helft mir noch einmal.


----------



## SnooP (20. Sep 2007)

Also diesmal seh ich nix... - hat er das denn schonmal gemacht?  ... wie gesagt, Remote Debugging hilft oftmals viel!

Übrigens mixt du viel HTML mit JSF - das wird beim Rendern der JSP vermutlich zu nen recht unschönes Durcheinander führen... - für sowas empfiehlt sich entweder gleich JSF 1.2 zu verwenden (myfaces 1.2.0) oder Facelets oder als Übergangslösung alle html-tags in <f:verbatim> Tags kapseln.


----------



## maki (20. Sep 2007)

Factestrace kann ich nur empfehlen: http://facestrace.sourceforge.net/

Im footer die taglib einbinden: 

```
<%@ taglib uri="http://sourceforge.net/projects/facestrace" prefix="ft"%>
```

und das tag setzen:

```
<ft:trace />
```

Dann weisst du zumindest ungefähr, was los ist


----------



## Gast (20. Sep 2007)

OK, habe die Libarie eingebunden, doch weiß ich nicht was ich mit den ausgegebenen Sachen anfangen soll. Bzw. sie helfen mir nicht bei diesem Problem.

Wollte ja auch MyFaces 1.2.0 verwenden, Doch leider fkt. beim Tomcat die DataTables nicht.


----------



## maki (20. Sep 2007)

Was sagt denn der trace, was action gerade ist?


----------



## Gast (20. Sep 2007)

Im trace existiert nichts zu Action.


----------



## maki (20. Sep 2007)

und in wecher Phase bricht er ab?
Sagt der trace etwas über messages?


----------



## Guest (20. Sep 2007)

Im Request-Cycle ist Validation rot und Messages bekomme ich:
 "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:1:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:2:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:3:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:4:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:5:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:6:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:7:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:8:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl. 
fTb:_idJsp6:9:_idJsp11 ERROR "_idJsp11": Wert ist keine gültige Auswahl.


----------



## maki (20. Sep 2007)

Ganz klar, die Konvertierung/Validierung ist fehlgeschlagen und damit wird die Verarbeitung abgebrochen, du kannst ja keine Action ausführen wenn eine Daten falsch sind.

Sieh dir doch mal das Phasenmodel von JSF an 

Was nun?

Gib erstmal allen(!) deinen Komponenten eine Id, so dass du einen etwas aussagekräftigere Fehermeldung erhälst, automatisch generierte Ids wie "_idJsp6:1:_idJsp11" helfen kaum bei der Fehlersuche.


----------



## Gast (20. Sep 2007)

Habe rausgefunden was der Fehler war. Die Phasen waren mir klar, und da ich nun wusste, dass es ein Validierungsfehler war, wurde mir klar, dass ich bei den checkboxen beim value-binding einen integer hatte.

werde mir auf jeden Fall die Libarie merken, und danke.

Eine kleine Frage noch am Rande: Wer benutzt von euch Eclipse für JSF. Bei mir nervt Eclipse nämlich immer beim JSP Semantic Valitator. Dieser ist extrem langsam, so dass Eclipse für 2-3 Minuten unbrauchbar wird, wenn man zB einen neuen Tag einfügt.


----------



## maki (20. Sep 2007)

Ich benutze Eclipse 3.2 + Exadel Studio Pro 4.0.4a.

Beim starten der IDE hängt sich der Validator manchmal auf, wenn nicht, geht's eigentlich relativ zügig auf meinem DuoCore 1.8 Ghz  und 2 Gig Ram.

Irgendwo kann man den Validator abschalten, schau doch mal in den Einstellungen.

Diese lib + tag brauchst du nur einmal im footer einzubinden und kannst sie immer verwenden.

Wie gesagt, ohne id pro component wird die Fehlersuche zur qual, wenn nicht gar unmöglich...


----------

