JSR352 JBeret – 使用JBeret运行SleepyBatchlet时出错

我正在尝试使用JBeret实现在Java SE模式下运行符合JSR352的Java批处理程序。

我使用SleepyBatchlet程序, 转换为可执行的JAR(包含所有必要的依赖项)以使用Jberet并尝试从我的Windows命令提示符运行它,但是,得到了这个错误堆栈跟踪。 我的Eclipse IDE运行时没有任何错误

我已经检查过看到Eclipse中使用的jdk版本和命令提示符是一样的。

这是我运行java -jar jarfilename.jar时的exception

 Exception 0 : org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type InjectionPoint with qualifiers @Default at injection point [UnbackedAnnotatedParameter] Parameter 1 of [UnbackedAnnotatedMethod] @Produces @BatchProperty public org.jberet.creation.BatchBeanProducer.getS hort(InjectionPoint) at org.jberet.creation.BatchBeanProducer.getShort(BatchBeanProducer.java:0) Possible dependencies: - Managed Bean [class org.jboss.weld.manager.BeanManagerImpl$InstanceInjectionPoint] with qualifiers [@Any @Default], - Managed Bean [class org.jboss.weld.injection.EmptyInjectionPoint] with qualifiers [@Any @Default], - Implicit Bean [javax.enterprise.inject.spi.InjectionPoint] with qualifiers [@Default] at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:369) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:282) at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:133) at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:164) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:507) at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68) at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66) at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at org.jboss.weld.bootstrap.ConcurrentValidator.validateBeans(ConcurrentValidator.java:76) at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:468) at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:392) at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:85) at org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.validateBeans(ForwardingBootstrap.java:75) at org.jboss.weld.environment.se.Weld.initialize(Weld.java:144) at org.jberet.se.SEArtifactFactory.(SEArtifactFactory.java:31) at org.jberet.se.BatchSEEnvironment.getArtifactFactory(BatchSEEnvironment.java:89) at org.jberet.operations.JobOperatorImpl.(JobOperatorImpl.java:69) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) ... 4 more 

使用maven目标clean install exec:java从Eclipse运行时的同一项目

 WARN: WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled Oct 02, 2017 2:36:08 PM org.jberet.repository.JdbcRepository getDDLLocation INFO: JBERET000021: About to initialize batch job repository with ddl-file: sql/jberet.ddl for database H2 Batchlet submitted: 1 SleepyBatchlet: process: entry SleepyBatchlet: process: sleep for: 15 SleepyBatchlet: process: [0] sleeping for a second... SleepyBatchlet: process: [1] sleeping for a second... SleepyBatchlet: process: [2] sleeping for a second... SleepyBatchlet: process: [3] sleeping for a second... SleepyBatchlet: process: [4] sleeping for a second... 

这是POM文件条目

    4.0.0 com.ibm.ws.jbatch.sample.sleepybatchlet SleepyBatchletSample 1.0 jar SleepyBatchletSample   org.jboss.spec.javax.batch jboss-batch-api_1.0_spec 1.0.0.Final   org.jberet jberet-core 1.0.2.Final   org.jberet jberet-support 1.0.2.Final   org.jboss.spec.javax.transaction jboss-transaction-api_1.2_spec 1.0.0.Final   org.jboss.weld weld-core 2.1.1.Final   org.jboss.weld.se weld-se 2.1.1.Final   org.jberet jberet-se 1.0.2.Final   org.jboss.marshalling jboss-marshalling 1.4.2.Final   com.h2database h2 1.4.178      org.apache.maven.plugins maven-assembly-plugin 2.4.1    jar-with-dependencies  PilotJBeret false    com.ibm.ws.jbatch.sample.sleepybatchlet.Main      make-assembly  package  single