我在jboss eap 7.1中部署耳朵时遇到麻烦,耳朵包含单个war,ejb和lib文件夹以及所有必需的jar,我得到了NoClassDefFoundError和classNotfoundexception(例如EJB.jar中提供了类文件,但是jboss正在查看它战争文件,如果我在战争中添加了该类文件,则该错误已解决,并且所有在EJB.jar中可用的类文件都发生了同样的错误)。但是,所有这些类都保存在EAR下,为什么这样做不起作用,并且部署不成功?
Here is the structure of EAR
EARF.ear
|--META-INF/
|-- MANIFEST.MF
|-- application.xml
|-- lib -- all required JAR files
|-- EJB.jar
|--webapp.war
这是堆栈跟踪-
“ {\” WFLYCTL0080:服务失败\“ => {\” jboss.deployment.subunit。\\“ EARF.ear \\”。\\“ webapp.war \\”。POST_MODULE \“ => \ “ WFLYSRV0153:无法处理部署\\“ EARF.ear \\”的子部署\\“ webapp.war \\”的阶段POST_MODULE 由以下原因引起的:java.lang.RuntimeException:WFLYSRV0177:从服务模块加载器获取带有类加载器Module \\“ deployment.EARF.ear.webapp.war \\”的Class.com.learn.servlet.ReportsExportToPdf类的反射信息时出错 由以下原因引起:java.lang.NoClassDefFoundError:Lcom / learn / dto / PrintDTO; 引起原因:java.lang.ClassNotFoundException:com.learn.dto.PrintDTO来自[Module \\“ deployment.EARF.ear.webapp.war \” from Service Module Loader] \“}}”
但是类文件PrintDTO在指定路径上可用。
谢谢。