[wildfly-dev] How to expose javax.batch classes to all deployments?

Stuart Douglas stuart.w.douglas at gmail.com
Sat Jun 29 01:21:46 EDT 2013


This should go in a new DUP in the batch subsystem, not in the EE subsystem. I know not everything follows this rule 100% at the moment, but that is also something we should fix. 

If it is done from a batch subsystem DUP it means that removing the subsystem removes all batch dependencies.

Stuart

Sent from my iPhone

On 29/06/2013, at 13:17, Cheng Fang <cfang at redhat.com> wrote:

> Thanks Stuart.  I added javax.bath.api to JavaEEDependencyProcessor for 
> now, and solved this problem.
> 
> Cheng
> 
> On 6/27/13 5:28 PM, Stuart Douglas wrote:
>> You need to great a DeploymentUnitProcessor that adds the dependency, 
>> see any of the DUP's that run in the DEPENDENCIES phase for details 
>> (e.g. org.jboss.as.weld.deployment.processors.WeldDependencyProcessor).
>> 
>> Stuart
>> 
>> 
>> Cheng Fang wrote:
>>> I'm trying to integrate javax.batch API (part of EE 7) into WildFly.
>>> I've added a couple of batch-related modules, updated build module, and
>>> also added javax.batch.api module to javaee.api module's dependency
>>> list, hoping that would automatically expose javax.batch to all
>>> deployments.  javax.batch is required API in EE 7 full profile.
>>> 
>>> This is how the part of javaee.api module.xml I touched:
>>> 
>>> <dependencies>
>>>          <module name="javax.activation.api" export="true"/>
>>>          <module name="javax.annotation.api" export="true"/>
>>>          <module name="javax.batch.api" export="true"/>
>>>          <module name="javax.ejb.api" export="true"/>
>>> ...
>>> 
>>> When deploying a webapp that uses javax.batch, I'm still seeing class
>>> not found errors from Weld (these batch classes are annotated with 
>>> @Named)
>>> 
>>> Is there anything else I need to change to make javax.batch classes
>>> available to all deployments?
>>> 
>>> Thanks for the help.
>>> 
>>> java.lang.LinkageError: Failed to link
>>> com/ibm/jbatch/tck/artifacts/specialized/StartLimitStateMachineVariation1Batchlet 
>>> 
>>> (Module
>>> "deployment.jslxml_web_vehicle.ear.jslxml_web_vehicle_web.war:main" from
>>> Service Module Loader)
>>>      at
>>> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:427) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:260) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:75) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at org.jboss.modules.Module.loadModuleClass(Module.java:526)
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188) 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at java.lang.Class.getEnclosingMethod0(Native Method) 
>>> [rt.jar:1.7.0_25]
>>>      at java.lang.Class.getEnclosingMethodInfo(Class.java:959)
>>> [rt.jar:1.7.0_25]
>>>      at java.lang.Class.getEnclosingConstructor(Class.java:1035)
>>> [rt.jar:1.7.0_25]
>>>      at
>>> org.jboss.weld.util.reflection.Reflections.isNonStaticInnerClass(Reflections.java:388) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.util.Beans.isTypeManagedBeanOrDecoratorOrInterceptor(Beans.java:503) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.bootstrap.BeanDeployer.createClassBean(BeanDeployer.java:226) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:74) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:72) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) 
>>> 
>>> [weld-core-impl-2.0.1.Final.jar:2013-06-03 10:29]
>>>      at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>> [rt.jar:1.7.0_25]
>>>      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>> [rt.jar:1.7.0_25]
>>>      at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
>>> 
>>> [rt.jar:1.7.0_25]
>>>      at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
>>> 
>>> [rt.jar:1.7.0_25]
>>>      at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
>>> Caused by: java.lang.NoClassDefFoundError: 
>>> javax/batch/api/AbstractBatchlet
>>>      at java.lang.ClassLoader.defineClass1(Native Method) 
>>> [rt.jar:1.7.0_25]
>>>      at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
>>> [rt.jar:1.7.0_25]
>>>      at
>>> org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:422) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      ... 23 more
>>> Caused by: java.lang.ClassNotFoundException:
>>> javax.batch.api.AbstractBatchlet from [Module
>>> "deployment.jslxml_web_vehicle.ear.jslxml_web_vehicle_web.war:main" from
>>> Service Module Loader]
>>>      at
>>> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>>      at
>>> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) 
>>> 
>>> [jboss-modules.jar:1.2.2.Final]
>>> _______________________________________________
>>> wildfly-dev mailing list
>>> wildfly-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> 
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev



More information about the wildfly-dev mailing list