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