Hello
I am struggling for four days to deploy my application on a WebSphere 7 server. Deploying on a Glassfish V3.1 does not invoke any problems. Next error is very common and various threads cover this topics on the forum. But no single thread released me from hell.
Error
InformationCode:Error creating bean with name 'entityManagerFactory' defined in class pa th resource [config/persistence-ctx.xml]: Invocation of init method failed;
Spring version : Spring 3.0.2 Final
Hibernate version : 3.5.1 Final
JPA 2.0 Implementation : Hibernate
Deployment file type: WAR
Maven build method : mvn clean install
We use AspectJ
Server
Class loader policy : PARENT_LAST
Server Version : 7.0.0.7
Notes
- I run IntelliJ 10 and dubbel checked if all dependencies have scope "compile" (if not solely test related) in the project structure.
- I Cannot find any secondary JPA 2.0 implementation in my Web-Inf/Lib which might raise a conflict (located on the WebSphere server)
Stack Trace :
Persistence.xmlCode:Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: mypackage.ProcessLogDao mypackage.ProcessOverviewController.processLogDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean wit h name 'processLogDaoImpl': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [config/dh-persistence-ctx.xml]: Invocation of init method failed; nested excep tion is java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode()Ljavax/persistence/SharedCacheMode; <!-- Some repeating stack trace omitted --> Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [conf ig/persistence-ctx.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getS haredCacheMode()Ljavax/persistence/SharedCacheMode; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor. java:529) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:49 5) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostPr ocessor.java:656) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostPro cessor.java:629) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:147) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:3 38) ... 51 more Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode()Ljavax/persistence/SharedCacheMode; at org.hibernate.ejb.util.LogHelper.logPersistenceUnitInfo(LogHelper.java:39) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:509) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:22 5) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409) ... 64 more
Persistence-ctx.cmlCode:<persistence-unit name="default"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>mypackage.ProcessLog</class> <class>mypackage.ProcessLogDetail</class> </persistence-unit>
Own notesCode:<bean id="persistenceUnitManager" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager"> <property name="persistenceXmlLocations"> <list> <value>classpath*:/config/persistence.xml</value> </list> </property> <property name="defaultDataSource" ref="dataSource"/> <property name="persistenceUnitPostProcessors"> <list> <bean class="mypackage.orm.jpa.MergingPersistenceUnitPostProcessor"/> </list> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy"> <property name="targetDataSource" ref="mainDataSource"/> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="${jpa.database}"/> </bean> </property> <property name="persistenceUnitName" value="default"/> <property name="persistenceUnitManager" ref="persistenceUnitManager"/> <property name="dataSource" ref="dataSource"/> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean>
- I really do not understand why I can deploy on a Glassfish Server (on my local machine) but not on Websphere 7. I do NOT have the feature pack "WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API 2.0" installed (is this really mandotory ? Because what I conclude it only expands OpenJPA support and not a third-party provider like hibernate)
- I went trough various topics on this site and JBoss but none of the solution helped me
- Full list of my classpath jars can be requested if necessary![]()


Reply With Quote
