JSF Exception: Could not retrieve value of component .

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
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:
Code:
	<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
Code:
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:

Code:
	<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:
Code:
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
 
G

Gast

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

SnooP

Top Contributor
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...
 
G

Guest

Gast
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
Code:
<!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
Code:
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

Top Contributor
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.
 
M

maki

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

Im footer die taglib einbinden:
Code:
<%@ taglib uri="http://sourceforge.net/projects/facestrace" prefix="ft"%>

und das tag setzen:
Code:
<ft:trace />

Dann weisst du zumindest ungefähr, was los ist ;)
 
G

Gast

Gast
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.
 
M

maki

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

Guest

Gast
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.
 
M

maki

Gast
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.
 
G

Gast

Gast
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.
 
M

maki

Gast
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...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S OpenJPA-Exception beim Tomee Allgemeines EE 0
P DTO, JPA Implementierungen, Exception Handling Allgemeines EE 6
P Kann jemand mit dieser Exception was anfangen? (JBoss) Allgemeines EE 5
S Servlet.service() threw exception Allgemeines EE 4
G Exception beim versenden einer Mail Allgemeines EE 3
MQue Session Exception Allgemeines EE 5
K Exception: getOutputStream() has already been called Allgemeines EE 8
A merkwürdige Exception in JSF Allgemeines EE 3
M Error Page exception Allgemeines EE 2
G Exception creating bean of class . (Struts) Allgemeines EE 8
T Warum wirft der mir diese Exception? Allgemeines EE 4
G BeanBox J2SE v 1.4 exception Allgemeines EE 5
B Exception - kann mit der Fehlermeldung nix anfangen Allgemeines EE 3
G hartnäckige NullPointer Exception in Servlet - wieso finde. Allgemeines EE 6
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
boxi JSF: Could not retrieve value of component Allgemeines EE 2
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
T Hashtable value per JSTL auslesen Allgemeines EE 3
M h:outputText und null-value (JSF) Allgemeines EE 2
G Struts: ActionMessage value in JSP anzeigen Allgemeines EE 2
P Value an JSTL mit EL übergeben. Allgemeines EE 2
P jsf SelectOneMenu: Bean als SelectItem Value Allgemeines EE 5
R Problem mit value-expression Allgemeines EE 7
N EvaluationException JSF : Cannot get value for expression. Allgemeines EE 3
J xdoclet session facade + value object Allgemeines EE 2
V <html:radio property="auswahl" value="E1&q Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben