JBoss 4.2.1GA, Hibernate classes included in war
jimpo Oct 15, 2007 12:07 PMI am having classloading issues when I include hibernate JARs in my war. jars have to be included in the war because the application needs to be able to select hibernate version freely.
My application uses hibernate to implement JPA.
I have tried to override universal classloader with jboss-web.xml:
<jboss-web>
<context-root>/</context-root>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>
org.myapp:loader=hibernatetestclassloader
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
But no success. the error I am experiencing is
java.lang.ClassCastException: org.hibernate.search.event.FullTextIndexEventListener
I have created a simple test application to recreate the problem.
http://rapidshare.com/files/62738527/myproject-1.0-SNAPSHOT.war.html
Once you have deployed the war, you should be able to go to
http://localhost:8080/myproject-1.0-SNAPSHOT/mainMenu.html or
http://localhost:8080/mainMenu.html
(depending on whether you are using tomcat or jboss)
and see a list of users from app_user database table. app_user should have two fields, "id" and "username". This war assumes you have MySQL running on localhost, and have user "root" with password "erofog". Or you may change the username and password in jdbc.properties in WEB-INF/classes/
You should be able to see whether you get deploy-time classloading errors or not, even if you don't have a MySQL server at all. So mysql is not really necessary. If you don't have mysql you will still get some deployment time errors, but deployment should be successfull and you can access the page and get something like:
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
I have tested on
1. tomcat 6.0.14 - works fine
2. JBoss 4.0.3SP1 - works fine
3. JBoss 4.2.1.GA - I get:
18:31:25,093 INFO [Version] Hibernate Validator 3.0.0.GA
18:31:25,203 INFO [DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.f
actory.support.DefaultListableBeanFactory@18845af: defi
ning beans [transactionManager,userDao,urlMapping,listUsersController,viewResolver,org.springframewo
rk.orm.jpa.support.PersistenceAnnotationBeanPostProcess
or,entityManagerFactory,persistenceUnitManager,propertyConfigurer,dataSource,org.springframework.aop
.config.internalAutoProxyCreator,controllerTx,org.sprin
gframework.transaction.aspectj.AnnotationTransactionAspect,txAdvice]; root of factory hierarchy
18:31:25,203 ERROR [DispatcherServlet] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr
amework.transaction.aspectj.AnnotationTransactionAspect
' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot resolve reference to
bean 'transactionManager' while setting bean property '
transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Er
ror creating bean with name 'transactionManager' define
d in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot resolve reference to bean 'en
tityManagerFactory' while setting bean property 'entity
ManagerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'entityManagerFactory' defined
in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Invocation of init method failed; nest
ed exception is java.lang.ClassCastException: org.hiber
nate.search.event.FullTextIndexEventListener
Caused by:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionM
anager' defined in ServletContext resource [/WEB-INF/di
spatcher-servlet.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting bean pr
operty 'entityManagerFactory'; nested exception is org.
springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFac
tory' defined in ServletContext resource [/WEB-INF/disp
atcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.ClassCastExcept
ion: org.hibernate.search.event.FullTextIndexEventListe
ner
Caused by:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManage
rFactory' defined in ServletContext resource [/WEB-INF/
dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.ClassCastEx
ception: org.hibernate.search.event.FullTextIndexEventL
istener
Caused by:
java.lang.ClassCastException: org.hibernate.search.event.FullTextIndexEventListener
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.jav
a:856)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersi
stence.java:127)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityMana
gerFactory(LocalContainerEntityManagerFactoryBean.java:
218)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractE
ntityManagerFactoryBean.java:251)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMe
thods(AbstractAutowireCapableBeanFactory.java:1201)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBe
an(AbstractAutowireCapableBeanFactory.java:1171)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(A
bstractAutowireCapableBeanFactory.java:425)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFac
tory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(Defau
ltSingletonBeanRegistry.java:156)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:160)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(Be
anDefinitionValueResolver.java:261)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNeces
sary(BeanDefinitionValueResolver.java:109)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropert
yValues(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean
(AbstractAutowireCapableBeanFactory.java:861)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(A
bstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFac
tory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(Defau
ltSingletonBeanRegistry.java:156)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:160)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(Be
anDefinitionValueResolver.java:261)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNeces
sary(BeanDefinitionValueResolver.java:109)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropert
yValues(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean
(AbstractAutowireCapableBeanFactory.java:861)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(A
bstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFac
tory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(Defau
ltSingletonBeanRegistry.java:156)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingle
tons(DefaultListableBeanFactory.java:287)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicatio
nContext.java:352)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkSer
vlet.java:331)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServl
et.java:265)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:23
5)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:126)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4069)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4373)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
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:585)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310)
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:585)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301
)
at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
at org.jboss.web.WebModule.startModule(WebModule.java:83)
at org.jboss.web.WebModule.startService(WebModule.java:61)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy45.start(Unknown Source)
at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
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:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterce
ptor.java:142)
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport
.java:238)
at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93)
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInt
erceptorSupport.java:188)
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy46.start(Unknown Source)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterce
ptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy9.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeplo
ymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploym
entScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeployme
ntScanner.java:225)
18:31:25,296 ERROR [[/]] StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr
amework.transaction.aspectj.AnnotationTransactionAspect
' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot resolve reference to
bean 'transactionManager' while setting bean property '
transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Er
ror creating bean with name 'transactionManager' define
d in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot resolve reference to bean 'en
tityManagerFactory' while setting bean property 'entity
ManagerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'entityManagerFactory' defined
in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Invocation of init method failed; nest
ed exception is java.lang.ClassCastException: org.hiber
nate.search.event.FullTextIndexEventListener
Caused by:
Java sources for the classes:
http://rapidshare.com/files/62742397/java.zip.html