[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2220) "Not an entity class" error upon migrating to 2.0.0 GA

Levent Aksu (JIRA) jira-events at lists.jboss.org
Wed Nov 7 11:59:45 EST 2007


"Not an entity class" error upon migrating to 2.0.0 GA
------------------------------------------------------

                 Key: JBSEAM-2220
                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2220
             Project: JBoss Seam
          Issue Type: Bug
    Affects Versions: 2.0.0.GA
         Environment: Linux, glassfish v2, postgresql 8.x
            Reporter: Levent Aksu


I migrated my application which was running previously with 1.2.1 GA. It starts and works nicely till it gets to the first "insert" with the following stack trace:

Hibernate: select nextval ('hibernate_sequence')
java.lang.IllegalArgumentException: Not an entity class: datassist.payroll.entity.Category
javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: Not an entity class: datassi
st.payroll.entity.Category
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpr
essionAdapter.java:97)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:96)
        at javax.faces.component.UICommand.broadcast(UICommand.java:383)
        at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:184)
        at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:162)
        at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:350)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:113)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.jav
a:397)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)

        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
        at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
        at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:216)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:276)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:24
0)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
        at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:6
67)
        at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.ja
va:574)
        at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
        at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)

        at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
        at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Caused by: java.lang.IllegalArgumentException: Not an entity class: datassist.payroll.entity.Categor
y
        at org.jboss.seam.Entity.forClass(Entity.java:208)
        at org.jboss.seam.persistence.PersistenceProvider.getPrePersistMethod(PersistenceProvider.ja
va:159)
        at org.jboss.seam.security.Identity.checkEntityPermission(Identity.java:681)
        at org.jboss.seam.security.HibernateSecurityInterceptor.onSave(HibernateSecurityInterceptor.
java:73)
        at org.hibernate.event.def.AbstractSaveEventListener.substituteValuesIfNecessary(AbstractSav
eEventListener.java:394)
        at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEven
tListener.java:270)
        at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.j
ava:181)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventLi
stener.java:121)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(D
efaultSaveOrUpdateEventListener.java:187)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrU
pdateEventListener.java:172)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveO
rUpdateEventListener.java:94)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpda
teEventListener.java:70)
        at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
        at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
        at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
        at org.jboss.seam.persistence.HibernateSessionProxy.saveOrUpdate(HibernateSessionProxy.java:
370)
        at datassist.payroll.action.CategoryAction.save(CategoryAction.java:131)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
        at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
        at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIde
ntityInterceptor.java:48)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:56)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:4
2)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
        at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java
:155)
        at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
        at datassist.payroll.action.CategoryAction_$$_javassist_2.save(CategoryAction_$$_javassist_2
.java)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
        at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
        at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
        at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpr
essionAdapter.java:77)
        ... 51 more
	

Note that "Category" is a mapped class and previously in the log I can read those lines:

...
Mapping class: datassist.payroll.entity.Item -> Item
Mapping union-subclass: datassist.payroll.entity.Category -> Category
Mapping union-subclass: datassist.payroll.entity.Unit -> Unit
...

Here follows my hibernate configuration:
hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="hibernateSession">
        
        <property name="connection.datasource">jdbc/payroll</property>
        <property name="hbm2ddl.auto">create-drop</property>
        <property name="show_sql">true</property>
        <!--property name="hibernate.format_sql">true</property-->
        <property name="transaction.flush_before_completion">true</property>
        <property name="connection.release_mode">after_statement</property>
        <!--property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property-->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="transaction.manager_lookup_class">org.hibernate.transaction.SunONETransactionManagerLookup</property>
        <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>

        
        <!-- Mapping files -->
        <!--mapping resource="category.hbm.xml"/-->
        <mapping resource="variable.hbm.xml"/>
        <mapping resource="value.hbm.xml"/>
        <mapping resource="item.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

mapping files:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="datassist.payroll.entity.variable"> 
    <class name="Variable" >
        <id name="id"><generator class="native"/></id>
        <discriminator column="type" type="string"/>
        
        <many-to-one name="category" class="datassist.payroll.entity.Category"/>
        <property name="name"/>
        <property name="label"/>
        <property name="description"/>
        <property name="finall"/>
        <property name="optional"/>
        
        <subclass name="BigDecimalVariable" discriminator-value="N" />
        <subclass name="DateVariable" discriminator-value="D" />
        <subclass name="StringVariable"  discriminator-value="S" />
    </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="datassist.payroll.entity.value"> 
    <class name="Value" >
        <id name="id" unsaved-value="-1"><generator class="native"/></id>
        <discriminator column="type" type="string"/>

        <many-to-one name="item" class="datassist.payroll.entity.Item"/>
        <many-to-one name="variable" class="datassist.payroll.entity.variable.Variable"/>
        <property name="since"/>
        <property name="till"/>
        <property name="ffinal"/>
        
        <subclass name="BigDecimalValue" discriminator-value="N">
            <property name="core" column="bigDecimalCore"/>
        </subclass>
        <subclass name="DateValue" discriminator-value="D" >
            <property name="core" column="dateCore"/>
        </subclass>
        <subclass name="StringValue" discriminator-value="S" >
            <property name="core" column="stringCore"/>
        </subclass>
    </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="datassist.payroll.entity">
    
    <class name="Item" abstract="true" >
        <id name="id" unsaved-value="-1"><generator class="native"/></id>
        <property name="name"/>
        <property name="description"/>
        
        <list name="values"  cascade="all, delete-orphan">
            <key column="item" />
            <list-index column="sortOrder"/>
            <one-to-many class="datassist.payroll.entity.value.Value"/>
        </list>
        
        <union-subclass name="Category">
            <property name="type"/>
            <many-to-one name="parentCategory" class="Category"/>
            
            <list name="childCategories">
                <key column="parentCategory"/>
                <list-index column="sortOrder"/>
                <one-to-many class="Category"/>
            </list>
            
            <list name="variables"  cascade="all, delete-orphan" >
                <key column="category"/>
                <list-index column="sortOrder" />
                <one-to-many class="datassist.payroll.entity.variable.Variable"/>
            </list>            
        </union-subclass>
        
        <union-subclass name="Unit">
            <many-to-one name="parentUnit" class="Unit"/>
            
            <list name="categories" table="unit_category" cascade="all, delete-orphan" >
                <key column="unit"/>
                <index column="sortOrder"/>
                <many-to-many class="Category" column="category"/>
            </list>
            
            <!--set name="employments" cascade="all, delete-orphan" >
                <key column="employer"/>
                <one-to-many class="Employment"/>
            </set-->
        </union-subclass>
        
        <union-subclass name="Employment">
            <many-to-one name="employer" class="Unit"/>
            <many-to-one name="employee" class="Employee"/>
            <property name="since"/>
            <property name="till"/>
        </union-subclass>
        
        <union-subclass name="Employee">
            <list name="employments" cascade="all, delete-orphan">
                <key column="employee"/>
                <list-index column="sortOrder"/>
                <one-to-many class="Employment" />
            </list>
            <set name="categories">
                <key column="employee"/>
                <many-to-many class="Category" column="category" />
            </set>
        </union-subclass>
    </class>
</hibernate-mapping>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list