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!!>

> >>

>

Reply via email to