You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Böhringer Jochen <Jo...@tcc-products.de> on 2006/11/13 15:03:50 UTC
can't configure public static inner class in faces-config.xml
Hello,
I tried to configure class TableSettings I have defined using public static class inside another class UserSettings as managed bean. But the first time the bean is accessed a ClassNotFound Exception is thrown (see below). If I define the class TableSettings in a separate file it works. Is this a bug?
I am using MyFaces 1.1.5 nightly.
Regards
Jochen
<managed-bean>
<managed-bean-name>tableSettings</managed-bean-name>
<managed-bean-class>de.tccproducts.kn.jsf.model.UserSettings.TableSettings</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>rowsFormTable</property-name>
<property-class>java.lang.Integer</property-class>
<value>20</value>
</managed-property>
<managed-property>
<property-name>rowsResultTable</property-name>
<property-class>java.lang.Integer</property-class>
<value>50</value>
</managed-property>
</managed-bean>
package de.tccproducts.kn.jsf.model;
import java.io.Serializable;
public class UserSettings implements Serializable{
[...]
public static class TableSettings implements Serializable {
private static final long serialVersionUID = -1883717926676470240L;
private int rowsResultTable;
private int rowsFormTable;
public TableSettings() {
}
[... getter and setter...]
}
}
Caused by: javax.faces.FacesException: java.lang.ClassNotFoundException: de.tccproducts.kn.jsf.model.UserSettings.TableSettings
at org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:162)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:265)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:46)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
at org.apache.myfaces.custom.redirectTracker.RedirectTrackerVariableResolver.resolveVariable(RedirectTrackerVariableResolver.java:38)
at org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:52)
at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:567)
at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
... 57 more
Caused by: java.lang.ClassNotFoundException: de.tccproducts.kn.jsf.model.UserSettings.TableSettings
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.myfaces.shared_impl.util.ClassUtils.classForName(ClassUtils.java:138)
at org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:157)
Re: can't configure public static inner class in faces-config.xml
Posted by Martin Marinschek <ma...@gmail.com>.
Hi Jochen,
the separator for inner classes generally is the "$"-sign (how would
you distinguish between a package and a class-name, if not for this
special separator..). Have you tried this?
de.tccproducts.kn.jsf.model.UserSettings$TableSettings
regards,
Martin
On 11/13/06, Böhringer Jochen <Jo...@tcc-products.de> wrote:
>
>
>
>
> Hello,
>
>
>
> I tried to configure class TableSettings I have defined using public static
> class inside another class UserSettings as managed bean. But the first time
> the bean is accessed a ClassNotFound Exception is thrown (see below). If I
> define the class TableSettings in a separate file it works. Is this a bug?
>
>
>
> I am using MyFaces 1.1.5 nightly.
>
>
>
> Regards
>
> Jochen
>
>
>
>
>
> <managed-bean>
>
> <managed-bean-name>tableSettings</managed-bean-name>
>
>
> <managed-bean-class>de.tccproducts.kn.jsf.model.UserSettings.TableSettings</managed-bean-class>
>
> <managed-bean-scope>none</managed-bean-scope>
>
> <managed-property>
>
> <property-name>rowsFormTable</property-name>
>
> <property-class>java.lang.Integer</property-class>
>
> <value>20</value>
>
> </managed-property>
>
> <managed-property>
>
> <property-name>rowsResultTable</property-name>
>
> <property-class>java.lang.Integer</property-class>
>
> <value>50</value>
>
> </managed-property>
>
> </managed-bean>
>
>
>
>
>
> package de.tccproducts.kn.jsf.model;
>
>
>
> import java.io.Serializable;
>
>
>
> public class UserSettings implements Serializable{
>
>
>
> […]
>
>
>
> public static class TableSettings implements Serializable {
>
>
>
> private static final long serialVersionUID =
> -1883717926676470240L;
>
> private int rowsResultTable;
>
> private int rowsFormTable;
>
>
>
> public TableSettings() {
>
>
>
> }
>
>
>
> [… getter and setter…]
>
> }
>
>
>
> }
>
>
>
> Caused by: javax.faces.FacesException:
> java.lang.ClassNotFoundException:
> de.tccproducts.kn.jsf.model.UserSettings.TableSettings
>
> at
> org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:162)
>
> at
> org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:265)
>
> at
> org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:46)
>
> at
> org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
>
> at
> org.apache.myfaces.custom.redirectTracker.RedirectTrackerVariableResolver.resolveVariable(RedirectTrackerVariableResolver.java:38)
>
> at
> org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:52)
>
> at
> org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
>
> at
> org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:567)
>
> at
> org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
>
> at
> org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
>
> ... 57 more
>
> Caused by: java.lang.ClassNotFoundException:
> de.tccproducts.kn.jsf.model.UserSettings.TableSettings
>
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
>
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
>
> at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>
> at java.lang.Class.forName0(Native Method)
>
> at java.lang.Class.forName(Class.java:242)
>
> at
> org.apache.myfaces.shared_impl.util.ClassUtils.classForName(ClassUtils.java:138)
>
> at
> org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:157)
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces