JEE批处理中找不到该类

时间:2019-02-11 11:07:23

标签: java batch-processing classnotfoundexception

我尝试通过遵循this page学习JEE批处理。我使用NetBeans 8.2通过JEE7创建企业项目。它在同一glassfish5容器中同时运行ejb层和Web层。由于我的读者,处理器和作家类处于ejb层,因此我在jar文件的TestJob.xml中创建了META-INF/batch-jobs。其内容:

<job id="TestJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<step id="process">
    <chunk item-count="2">
        <reader ref="SimpleItemReader"/>
        <processor ref="SimpleItemProcessor"/>
        <writer ref="SimpleItemWriter"/>
    </chunk>
</step>
</job> 

jar的结构也很简单:

<jar file>
   |-- META-INF
   |      |-- batch-jobs
   |              |-- TestJob.xml
   |      |-- MANIFEST.MF
   |-- testjob      <-- my packge
         |-- SimpleItemReader.class . . . <-- class files  

与链接相同,我使用servlet触发作业。但是找不到TestJob.xml

因此,我将xml文件移至战争层。战争文件的结构是这样的:

<war file>
   |-- META-INF
   |      |-- MANIFEST.MF
   |-- WEB-INF
           |-- classes
                |-- META-INF
                |     |-- batch-jobs
                |          |-- TestJob.xml
                |-- testjob.servlet      <-- my package for servlet
                      |-- PayrollJobServlet.class   

但是随后它命中了ClassNotFoundException: SimpleItemReader

我还尝试将xml文件同时放入ejb和war层,看来ejb总是被忽略,而war-1却因ClassNotFoundException: SimpleItemReader而失败。因此,如果有人可以帮助我在这里发现错误,我将不胜感激。如有必要,我可以在此处发布编码,但似乎还没有到达该类。此外,它们是从链接复制的。请帮忙。

0 个答案:

没有答案