Hi Gerhard, thanks a lot for your answer!
As far as I know, the jars inside the ear lib directory are available for all the artifacts inside the ear, so there shouldn't be any problem because this is the default isolation in wildfly... besides it only happens during the deployment when the TransactionStrategy is stablished. >From wildFly doc: ( http://docs.wildfly.org/13/Admin_Guide.html#ear-subdeployments-isolation) - - - EAR Subdeployments Isolation A flag indicating whether each of the subdeployments within a .ear can access classes belonging to another subdeployment within the same .ear. The default value is false, which allows the subdeployments to see classes belonging to other subdeployments within the .ear. - - - I think that during the deployment, the initialization code of DeltaSpike (all its jars are inside ear/lib) reads the TransactionStrategy and tries to instantiate this class but it can't find it... even when all the jars are in the same place... so it can execute the initializacion code which is in a jar inside ear/lib, and this code can't instantiate a class which is in the same place... it sounds weird... On 2018/07/06 17:41:53, Gerhard Petracek <[email protected]> wrote: > hi,> > > please have a look at the wildfly-config for module-isolation.> > > regards,> > gerhard> > > > > 2018-07-05 11:06 GMT+02:00 Gofio Code <[email protected]>:> > > > Dear community,> > >> > > I am using DeltaSpike Data Module 1.7.2 (some problem with 1.8.2) in a> > > project together with JPA and Vaadin 8.4.4. The proyectis deployed to> > > WildFly 13.0.0.Final by means of a ear file.> > >> > > Structure of the ear:> > >> > > * EAR File> > > |- lib/> > > | |- deltaspike jars (including> > > "deltaspike-jpa-module-impl-1.7.2.jar")> > > | `- persistence.jar >> includes JPA, deltaspike> > > Repositories> > > |- ejbServices.jar >> it uses the deltaspike Repositories> > > `- vaadinApp.war >> it uses the ejbServices> > >> > > If I didn't set any TransactionStrategy it is deployed and I can even use a> > > repository to execute a "findAll()" successfully. But if I set> > > ContainerManagedTransactionStrategy to ContainerManagedTransactionStrategy> > > I get this exception at deplyment time:> > >> > > ------------------------> > > 08:49:44,060 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2)> > > MSC000001: Failed to start service> > > jboss.deployment.unit."gesteven-app-0.0.1-SNAPSHOT.ear".WeldStartService:> > > org.jboss.msc.service.StartException in service> > > jboss.deployment.unit."gesteven-app-0.0.1-SNAPSHOT.ear".WeldStartService:> > > Failed to start service> > > at> > > org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(> > > ServiceControllerImpl.java:1728)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(> > > ServiceControllerImpl.java:1556)> > > at> > > org.jboss.threads.ContextClassLoaderSavingRunnable.run(> > > ContextClassLoaderSavingRunnable.java:35)> > > at> > > org.jboss.threads.EnhancedQueueExecutor.safeRun(> > > EnhancedQueueExecutor.java:1985)> > > at> > > org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(> > > EnhancedQueueExecutor.java:1487)> > > at> > > org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(> > > EnhancedQueueExecutor.java:1378)> > > at java.lang.Thread.run(Thread.java:748)> > > Caused by: org.jboss.weld.exceptions.DefinitionException: Exception List> > > with 1 exceptions:> > > Exception 0 :> > > java.lang.IllegalStateException: Can't find class> > > org.apache.deltaspike.jpa.impl.transaction. ContainerManagedTransactionStr> > > ategy> > > which is configured for> > > org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy> > > at> > > org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension.> > > activateGlobalAlternatives(ExcludeExtension.java:303)> > > at> > > org.apache.deltaspike.core.impl.exclude.extension.> > > ExcludeExtension.vetoBeans(ExcludeExtension.java:174)> > > at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)> > > at> > > sun.reflect.DelegatingMethodAccessorImpl.invoke(> > > DelegatingMethodAccessorImpl.java:43)> > > at java.lang.reflect.Method.invoke(Method.java:498)> > > at> > > org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(> > > StaticMethodInjectionPoint.java:95)> > > at> > > org.jboss.weld.injection.MethodInvocationStrategy$> > > SpecialParamPlusBeanManagerStrategy.invoke( MethodInvocationStrategy.java:> > > 144)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.sendEvent(> > > ObserverMethodImpl.java:330)> > > at> > > org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(> > > ExtensionObserverMethodImpl.java:123)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.sendEvent(> > > ObserverMethodImpl.java:308)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.notify(> > > ObserverMethodImpl.java:286)> > > at> > > org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.> > > fireProcessAnnotatedType(ContainerLifecycleEvents.java:203)> > > at> > > org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.> > > fireProcessAnnotatedType(ContainerLifecycleEvents.java:174)> > > at> > > org.jboss.weld.bootstrap.BeanDeployer.processAnnotatedTypes(> > > BeanDeployer.java:166)> > > at> > > org.jboss.weld.bootstrap.BeanDeployment.createTypes(> > > BeanDeployment.java:219)> > > at> > > org.jboss.weld.bootstrap.WeldStartup.startInitialization(> > > WeldStartup.java:415)> > > at> > > org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(> > > WeldBootstrap.java:79)> > > at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:95)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(> > > ServiceControllerImpl.java:1736)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(> > > ServiceControllerImpl.java:1698)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(> > > ServiceControllerImpl.java:1556)> > > at> > > org.jboss.threads.ContextClassLoaderSavingRunnable.run(> > > ContextClassLoaderSavingRunnable.java:35)> > > at> > > org.jboss.threads.EnhancedQueueExecutor.safeRun(> > > EnhancedQueueExecutor.java:1985)> > > at> > > org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(> > > EnhancedQueueExecutor.java:1487)> > > at> > > org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(> > > EnhancedQueueExecutor.java:1378)> > > at java.lang.Thread.run(Thread.java:748)> > >> > > at> > > org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.> > > fireProcessAnnotatedType(ContainerLifecycleEvents.java:210)> > > at> > > org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.> > > fireProcessAnnotatedType(ContainerLifecycleEvents.java:174)> > > at> > > org.jboss.weld.bootstrap.BeanDeployer.processAnnotatedTypes(> > > BeanDeployer.java:166)> > > at> > > org.jboss.weld.bootstrap.BeanDeployment.createTypes(> > > BeanDeployment.java:219)> > > at> > > org.jboss.weld.bootstrap.WeldStartup.startInitialization(> > > WeldStartup.java:415)> > > at> > > org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(> > > WeldBootstrap.java:79)> > > at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:95)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(> > > ServiceControllerImpl.java:1736)> > > at> > > org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(> > > ServiceControllerImpl.java:1698)> > > ... 6 more> > > Suppressed: java.lang.IllegalStateException: Can't find class> > > org.apache.deltaspike.jpa.impl.transaction. ContainerManagedTransactionStr> > > ategy> > > which is configured for> > > org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy> > > at> > > org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension.> > > activateGlobalAlternatives(ExcludeExtension.java:303)> > > at> > > org.apache.deltaspike.core.impl.exclude.extension.> > > ExcludeExtension.vetoBeans(ExcludeExtension.java:174)> > > at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)> > > at> > > sun.reflect.DelegatingMethodAccessorImpl.invoke(> > > DelegatingMethodAccessorImpl.java:43)> > > at java.lang.reflect.Method.invoke(Method.java:498)> > > at> > > org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(> > > StaticMethodInjectionPoint.java:95)> > > at> > > org.jboss.weld.injection.MethodInvocationStrategy$> > > SpecialParamPlusBeanManagerStrategy.invoke( MethodInvocationStrategy.java:> > > 144)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.sendEvent(> > > ObserverMethodImpl.java:330)> > > at> > > org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(> > > ExtensionObserverMethodImpl.java:123)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.sendEvent(> > > ObserverMethodImpl.java:308)> > > at> > > org.jboss.weld.event.ObserverMethodImpl.notify(> > > ObserverMethodImpl.java:286)> > > at> > > org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.> > > fireProcessAnnotatedType(ContainerLifecycleEvents.java:203)> > > ... 14 more> > > ------------------------> > >> > > I have double checked the ear file and> > > "deltaspike-jpa-module-impl-1.7.2.jar" is in its lib folder... Why is it> > > saying it can't find the class> > > org.apache.deltaspike.jpa.impl.transaction. ContainerManagedTransactionStr> > > ategy?????> > > Any ideas?? Could the TransactionStrategy be declared in a different way?> > >> > > ** Below is the rest of my configuraion **> > >> > > ===========> > > persistence.jar> > > ===========> > >> > > >> pom.xml dependency:> > >> > > <dependency>> > > <groupId>org.apache.deltaspike.modules</groupId>> > > <artifactId>deltaspike-data-module-api</artifactId>> > > <version>1.7.2</version>> > > <scope>compile</scope>> > > </dependency>> > > <dependency>> > > <groupId>org.apache.deltaspike.modules</groupId>> > > <artifactId>deltaspike-data-module-impl</artifactId>> > > <version>1.7.2</version>> > > <scope>runtime</scope>> > > </dependency>> > >> > >> > > >> META-INF/apache-deltaspike.properties:> > > globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.> > > TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.> > > ContainerManagedTransactionStrategy> > >> > > >> META-INF/beans.xml:> > > this file is empty> > >> > > >> META-INF/persistence.xml:> > > <persistence version="2.1" xmlns="http://xmlns.jcp.org/ xml/ns/persistence> > > "> > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > > xsi:schemaLocation="> > > http://xmlns.jcp.org/xml/ns/persistence> > > http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">> > > <persistence-unit name="myapp-persistence" transaction-type="JTA">> > > <provider>org.hibernate.jpa.HibernatePersistenceProvider</> > > provider>> > > <jta-data-source>java:jboss/datasources/myAppDS</jta-data-source>> > >> > > <exclude-unlisted-classes>false</exclude-unlisted-classes>> > > <properties>> > > <property name="hibernate.dialect"> > > value="org.hibernate.dialect.PostgreSQLDialect" />> > > </properties>> > > </persistence-unit>> > > </persistence>> > > -----------------------------------------> > >> > > >> The EntityManager defined in EntityManagerProducer.java:> > > public class EntityManagerProducer {> > > @PersistenceUnit> > > private EntityManagerFactory emf;> > >> > > @Produces // you can also make this @RequestScoped> > > public EntityManager create()> > > {> > > return emf.createEntityManager();> > > }> > >> > > public void close(@Disposes EntityManager em)> > > {> > > if (em.isOpen())> > > {> > > em.close();> > > }> > > }> > > }> > >> > >> > > ======================> > >> > > It seems to be a classloader problem, but as far as> > > "deltaspike-jpa-module-impl-1.7.2.jar" is inside the lib folder of the ear> > > file, i can't figure out why it can't find it...> > >> > > Any help will be appreciated, thanks in advance!!> > >> >
