I am trying to take a WAR that deploys and works fine on Tomcat and deploys it to Glassfish. Original error message in Glassfish:
com.sun.enterprise.deployment.backend.IASDeploymentException: Deployment failed. persistence, context-ref name [Org.nhindirect.config.store.dao.impl.AnchorDaoImpl / EntityManager] in the module [C: \ Sun \ AppServer \ domains \ domain1 \ applications \ j2ee-modules \ config-service] allows block persistence called [config-store], which is of type RESOURCE_LOCAL. Only storage units using the JTA transaction type as a managed container manager. Check your application.
WAR does not have a persistence.xml file in the META-INF folder. However, in WEB-INF \ lib there is a JAR that contains the persistence.xml file. The following is its content:
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="config-store" transaction-type="RESOURCE_LOCAL"> <properties> <property name="hibernate.hbm2ddl.auto" value="validate" /> </properties> </persistence-unit> </persistence>
So here is my question: is it possible to run the WAR configured for RESOURCE_LOCAL on Glassfish, or should I reconfigure the WAR for JTA?
I explored the first option by making the following changes to WAR web.xml:
- Changed
version="2.5" to version="2.4" - Changed
xmlns="http://java.sun.com/xml/ns/javaee"
for xmlns="http://java.sun.com/xml/ns/j2ee" image xmlns="http://java.sun.com/xml/ns/j2ee" - Changed
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
for xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee image xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
After these changes, WAR seems to have deployed successfully, however, I was unable to access its WSDL, and the following error was detected in the Glassfish log:
The original context for sending exceptions is the case for the class listener org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean named 'Org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor # 0' defined [/WEB-INF/beans.xml]: Initialization from bean failed; org.springframework.beans.factory.BeanCreationException nested exception: Error creating bean named 'entityManagerFactory', defined in Resource ServletContext [/WEB-INF/beans.xml]: init method call failed; the nested exception is java.lang.NoClassDefFoundError: javassist / bytecode / ClassFile on org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCortableBeanFactoryFactoryAforyAboutanfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybourfour orgorybory (AbstractAutowireCapableBeanFactory.java:409) in java.security.AccessController.doPrivileged (Native Method) with org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapory.supporteebeb.supporteebeebebour orgebeborg.beory orgebebour orgebebb.supportebeebeorgan.beoryebe .AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:264) in org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) in org.springframework.beansGentoryBactoryBfactoryBactoryBfactoryBfactory java: 261) in org.springframework.beans.factory.support.AbstractBeanFactory.getBean (Abstra ctBeanFactory.java:185) to org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:164) to org.springframework.context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.getBean .context.support.AbstractApplicationContext.registerBeanPostProcessors (AbstractApplicationContext.java∗96) in org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.javaictionary65e.ContextWeContextWecontextecontext.webtextcontext.webcontextertext.obecl : 255) in org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:199) in org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:45) in org.apec. StandardContext.listenerStart (StandardContext.java:4655) in org.apache.catalina.core.StandardContext.start (StandardContext.java:5364) in com.sun.enterprise.web.WebModule.start (WebModule. java: 345) in org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:986) in org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:970) in org.apache.catalina.core .StandardHost.addChild (StandardHost.java:704) in com.sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:1649) in com.sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:1254) com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed (WebModuleDeployEventListener.java:182) in com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed.WebModuleDeployEventministenter.istemententer.istermententer.istenementjententermeisten.meminententer invokeModuleDeployEventListener (AdminEventMulticaster.java:1005) in com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent (AdminEventMulticaster.java:992) in com.sun.enterprise.admin.event.AdminEventMultMultimeventultult at com.sun.enterprise.admin.event.AdminEventMul ticaster.multicastEvent (AdminEventMulticaster.java:182) in com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent (DeploymentNotificationHelper.java:308) in com.sun.enterprise.deployment.phasing.Deployment.ServiceUviceUilsUvice java: 231) in com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent (ServerDeploymentTarget.java:298) in com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase (ApplicationStartPhase.java.s132) .enterprise.deployment.phasing.DeploymentPhase.executePhase (DeploymentPhase.java:108) in com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases (PEDeploymentService.java:966) in com.sun.enterprisementervice .start (PEDeploymentService.java:609) in com.sun.enterprise.deployment.phasing.PEDeploymentService.start (PEDeploymentService.java:653) in com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start (ApplicationsConfjMonejfon3jonfonfonfjf ) in sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) when sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) in sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.rej.melf.ref.lore.flect.revelf.leffref.livefrell.relefreme.revlf.jetml.ref.lv.lemf.jpg .invoke (Method.javaPoint97) in com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean (MBeanHelper.java data90) in com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean (MBeanHelper.javaapter73) sun.enterprise.admin.config.BaseConfigMBean.invoke (BaseConfigMBean.java-00-0077) in com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:836) in com.sun.ermerjerjerjerjerjerjerjerjerjerjerm JmxMBeanServer.java:761) in sun.reflect.GeneratedMethodAccessor13.invoke (Unknown Source) in sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) in java.lang.reflectvMethodinMethodinMethod Method at com.sun.enterprise.admin.util.proxy.ProxyCla ss.invoke (ProxyClass.java:90) in $ Proxy1.invoke (Unknown source) in com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke (SunoneInterceptor.java:304) in com.sun.enterprise .interceptor.DynamicInterceptor.invoke (DynamicInterceptor.java:170) in com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication (DeploymentClientUtils.java:159) in com.sun.enterprise.deployment.client.DeployActionrun .java: 538) in java.lang.Thread.run (Thread.java:619) Called: org.springframework.beans.factory.BeanCreationException: Error creating bean named 'entityManagerFactory' defined in Resource ServletContext [/ WEB- INF / beans.xml]: the init method call failed; the nested exception is java.lang.NoClassDefFoundError: javassist / bytecode / ClassFile on org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCentableBapanBanAforyBeventFeoryFeBoryBeanFeBerWeBeBeWeFeBerBeventFeBeBeWeFeBeWeBeBeBeWeFeBeWeBeBeWeFeBeBeBeWeFeBeTBeWeFeBeBeTBeWeFeBeTBeWeFeBeTeFeBentBeBeWeBeBeTeFeBentBeObFeTBeanFeatFeatBeanBeanBeanBeanBeanFactoryBeanFactory. AbstractAutowireCapableBeanFactory.java:473) in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory $ 1.run (AbstractAutowireCapableBeanFactory.java:409) in java.security.AccessController.sbeativeforg.doPiveile org .AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java{80) in org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFortory.bbetefinglebf java: 222) in org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:261) in org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:185) in org.springframework.beans.factoryBefanBean.ebaneFegetBegetFegeteBeanFegetBean.Bean java: 164) in org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType (DefaultListableBeanFactory.java:308) in org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeorscfannalsafesanfsananfilsnfesanfsnanfsnanfilsnfsanfsnanfsanfsnfsnfsn .support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTranslationInterceptor.java:122) in org.springframework.dao.support.PersistenceExceptionTranslationInterceptor. (PersistenceExceptionTranslationInterceptor.java:78) at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor. (PersistenceExceptionTranslationAdvisor.java:70) in org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory (PersistenceExceptionTranslationPostProcessor.java:97) in org.springframework.beans.factory.support.utableeutoryututautanutoryututautanutableututautanutbutautautabutautautabutautautbutautautabutautautbutautabutautautbutautautbutautabutautautbutautabutautautbutautaentautbutauturnuto springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.javarige73) ... 56 more Reasons: java.lang.NoClassDefFoundError: javassist / bytecode / ClassFarVec.jec.jec.bec.Jetbj.jecb.jec .java: 236) in org.hibernate.ejb.packaging.AbstractJarVisitor.executeJavaElementFilter (AbstractJarVisitor.java:202) in org.hibernate.ejb.packaging.AbstractJarVisitor.addElement (AbstractJarVisitor.javahiber.e. packaging.FileZippedJarVisitor.doProcessElements (FileZippedJarVisitor.java:100) at org.hibernate.ejb.packa ging.AbstractJarVisitor.getMatchingEntries (AbstractJarVisitor.java:139) in org.hibernate.ejb.Ejb3Configuration.addScannedEntries (Ejb3Configuration.java:287) in org.hibernate.ejb.Ejb3Confiberj .ejb.Ejb3Configuration.configure (Ejb3Configuration.java:360) in org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory (HibernatePersistence.java:131) in org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory (LocalContainerEntityManagerFactoryBean.java:224) in org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet (AbstractEntityManagerFactoryBean.java:291) in org.springframework.beans.oryoryuppuppyutemativefapableBeanFactory.invokefutablefapablebethanutapeditapapentbethanutapementaputbentanethapomitetaputativefethativebethanutapetemapitemapativebethanethapomitethapomobethapombethanutaponutaputemaputemaputemaputbetanutapentitetapablebapanbethanetapiobitemapitbableanaprt AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1335) ... 73 more
Part of the above error message complains about javassist. This seems odd because the next section is in WAR pom.xml
<dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> </dependency>
If this is useful, here is the contents of WAR beans.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd" default-autowire="byName"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <context:annotation-config /> <context:component-scan base-package="org.nhindirect.config" /> <tx:annotation-driven transaction-manager="transactionManager" /> <jaxws:endpoint id="configurationService" address="/ConfigurationService" > <jaxws:implementor> <bean id="configurationServiceImpl" class="org.nhindirect.config.service.impl.ConfigurationServiceImpl"> <property name="domainSvc" ref="domainSvc"/> <property name="addressSvc" ref="addressSvc"/> <property name="anchorSvc" ref="anchorSvc"/> <property name="certSvc" ref="certSvc"/> <property name="settingSvc" ref="settingSvc"/> <property name="DNSSvc" ref="dnsSvc"/> </bean> </jaxws:implementor> </jaxws:endpoint> <bean id="domainSvc" class="org.nhindirect.config.service.impl.DomainServiceImpl"> <property name="dao" ref="domainDao"/> </bean> <bean id="addressSvc" class="org.nhindirect.config.service.impl.AddressServiceImpl"> <property name="dao" ref="addressDao"/> </bean> <bean id="anchorSvc" class="org.nhindirect.config.service.impl.AnchorServiceImpl"> <property name="dao" ref="anchorDao"/> </bean> <bean id="certSvc" class="org.nhindirect.config.service.impl.CertificateServiceImpl"> <property name="dao" ref="certificateDao"/> </bean> <bean id="settingSvc" class="org.nhindirect.config.service.impl.SettingServiceImpl"> <property name="dao" ref="settingDao"/> </bean> <bean id="dnsSvc" class="org.nhindirect.config.service.impl.DNSServiceImpl"> <property name="dao" ref="dnsDao"/> </bean> <bean id="domainDao" class="org.nhindirect.config.store.dao.impl.DomainDaoImpl"/> <bean id="addressDao" class="org.nhindirect.config.store.dao.impl.AddressDaoImpl"/> <bean id="anchorDao" class="org.nhindirect.config.store.dao.impl.AnchorDaoImpl" /> <bean id="certificateDao" class="org.nhindirect.config.store.dao.impl.CertificateDaoImpl"/> <bean id="settingDao" class="org.nhindirect.config.store.dao.impl.SettingDaoImpl"/> <bean id="dnsDao" class="org.nhindirect.config.store.dao.impl.DNSDaoImpl"/> <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> <property name="databasePlatform" value="org.hibernate.dialect.DerbyDialect" /> </bean> </property> <property name="dataSource" ref="dataSource"/> <property name="persistenceUnitName" value="config-store" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" /> <property name="url" value="jdbc:derby:nhindconfig;create=true" /> <property name="username" value="nhind" /> <property name="password" value="nhind" /> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" /> </beans>
Sorry if I provided too much information. I am new to JPA and was not sure that would not help anyone.
Thanks in advance.