2009-06-05 87 views
2

我有以下问题。当我第一次将我的ear文件部署到JBOSS的server \ default \ deploy文件夹时,事情似乎正常工作。但是,在JBOSS仍在运行的情况下,如果我再次删除并重新复制ear文件,我的单元测试将失败,并列出下面的例外。这就像在热部署期间失去了实体的Hibernate映射。然后,如果我停止并重新启动JBOSS而不做任何更改,那么事情将再次起作用。所以这就像热部署是不正确的。休眠jboss热部署问题

有没有人遇到过这个问题或知道解决方法?

感谢您的任何帮助。

环境: 的Windows XP SP3 JBoss的4.2.3GA 的Hibernate 3.3.1 Hibernate的实体管理器3.4.0

javax.ejb.EJBException异常:java.lang.IllegalArgumentException异常:org.hibernate.hql.ast .QuerySyntaxException:TestEntity未映射[来自TestEntity] at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83 ) at org.jboss.aspects.tx.TxInterceptor $ Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvoca tion.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security。 AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(EN CPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org。 (org.jboss.ejb3.stateless.StatelessContainer.java:304) at org.jboss.aop.Dispatcher.invoke(Dispatcher。的java:106) 在org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 在org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:809) 在org.jboss.remoting。 transport.socket.ServerThread.processInvocation(ServerThread.java:608) 在org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:406) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:173) 引起来自:java.lang .IllegalArgumentException:org.hibernate.hql.ast.QuerySyntaxException:TestEntity未映射[FROM TestEntity] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:617) at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery (AbstractEntityManagerImpl.java:96) 在org.jboss.ejb3.entity.TransactionScopedEntityManager.createQuery(TransactionScopedEntityManager.java:134) 在com.topcoder.test.TestBean.retrieveAll(TestBean.java:62) 在sun.reflect .NativeMethodAccessorImpl.invoke0(本地方法) at sun.r eflect.NativeMethodAccessorImpl。invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java :112) 在org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) 在org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) 在org.jboss.aop .joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java :101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy。 invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor $ Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless。 StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(Metho dInvocation.java:101) 在org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) 在org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110) 在有机jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation。的java:101) 在org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 在org.jboss。 ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java :304) 在org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106) 在org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 在org.jboss.remoting.ServerInvoker .invoke(ServerInvoker.java:809) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:608) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java :406) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:173) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:163) at org.jboss.remoting .Client.invoke(Client.java:1634) at org.jboss.remoting.Client.invoke(Client.java:548) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx。 ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) at org.jboss.aop.joinpoint。 MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3。stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107) 在$ Proxy0.retrieveAll(来源不明) 在com.topcoder.test.TestEntityTestCase.testFake(TestEntityTestCase.java:101) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明) 在java.lang.reflect.Method.invoke(来源不明) 在junit.framework。在junit.framework.TestResult $ 1.protect(TestResult.java:106) junit.framework.TestResult(TestCase.java:130) .runProtected(TestResult.java:124) 在junit.framework.TestResult.run(TestResult.java:109) 在junit.framework.TestCase.run(TestCase.java:120) 在junit.framework.TestSuite.runTest(TestSuite.java:230) 在junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal。 junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit。 runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:74) at org.jboss.aop .joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java :101) 在org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 在org.jboss.ejb3 .remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) at org.jboss.aop.joinpo int.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107) at $ Proxy0.retrieveAll(Unknown Source) at com.topcoder.test。 TestEntityTestCase.testFake(TestEntityTestCase.java:101) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明) 在junit.framework.TestCase.runBare(TestCase.java:130) at junit。在java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:164) framework.TestResult $ 1.protect(TestResult.ja va:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java: 120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3。 JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner。 runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org。eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 引起:org。 hibernate.hql.ast.QuerySyntaxException:TestEntity未映射到[org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158) org.hibernate.hql.ast.tree [TestEntity] 。 FromElementFactory.addFromElement(FromElementFactory.java:87) at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70) at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java: 255) at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056) at org.hibernate.hql.antlr.HqlSq lBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945) 在org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688) 在org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544) 在org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281) 在org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229) 在org.hibernate.hql.ast。 QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228) 在org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160) 在org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) at org.hibernate.engine.query.HQLQueryPlan。(HQLQueryPlan.java:77) at (org.hibernate.engine.query.HQLQueryPlan。(HQLQueryPlan.java:56) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl .java:133) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623) at org.hibernate.ejb.AbstractEntityManagerImpl .createQuery(AbstractEntityManagerImpl.java:93) at org.jboss.ejb3.entity.TransactionScopedEntityManager.createQuery(TransactionScopedEntityManager.java:134) at com.topcoder.test.TestBean.retrieveAll(TestBean.java:62) at sun .reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在java.lang.reflect.Method.invoke(未知来源) 在org.jboss.aop.joinpoint .MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63 ) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 在org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) 在org.jboss.aop.joinpoint .MethodInvocation.invokeNext(其实现方法具dInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss。在org.jboss.asp.tx.TxInterceptor $ Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(()方法调用.invokeNext( MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org。 jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org。jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke( Ejb3AuthenticationInterceptor.java:110) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 在org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) 在org.jboss。 aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation。 java:101) at org.jboss.ejb3.stateless.Sta telessContainer.dynamicInvoke(StatelessContainer.java:304) 在org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106) 在org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 在org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:809) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:608) at org.jboss.remoting.transport.socket。 ServerThread.dorun(ServerThread.java:406) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:173)

回答

0

你在班上有什么?

com.topcoder.test.TestBean.retrieveAll(TestBean.java:62) 在

+0

列表结果= em.createQuery( “FROM TestEntity”)getResultList(); – dcp 2009-06-06 10:37:52