Eclipse添加EJB项目到Web项目构建路径后仍报Cannot Resolve to a Type错误
解决Eclipse中EAR项目WAR无法引用EJB类的问题
1. 配置项目间引用关联
右键hsports-catalog-jsf-CDI项目 → Properties → Project References,勾选hsports-catalog-ejb后保存。这是让Eclipse识别项目依赖的基础,比单纯添加Build Path更关键。
2. 修正Build Path的依赖导出设置
- 打开
hsports-catalog-jsf-CDI的Java Build Path → Projects标签,确认hsports-catalog-ejb已添加。 - 切换到Order and Export标签,勾选
hsports-catalog-ejb,确保EJB的编译类能被WAR项目正确识别并包含到类路径中。 - 注意:不要手动将EJB的源文件夹添加到WAR的Build Path,这会引发编译重复或类路径冲突。
3. 检查EAR项目的模块依赖配置
- 右键主EAR项目
hsports-catalog-CDI→ Properties → Java EE Module Dependencies,确认hsports-catalog-ejb和hsports-catalog-jsf-CDI都在列表中,且WAR模块对EJB模块的依赖已勾选。 - 查看EAR项目
META-INF下的application.xml,确保模块声明正确:<module> <ejb>hsports-catalog-ejb.jar</ejb> </module> <module> <web> <web-uri>hsports-catalog-jsf-CDI.war</web-uri> <context-root>/hsports-catalog</context-root> </web> </module>
4. 清理重建项目
执行Eclipse菜单Project → Clean...,选择清理所有项目;之后右键每个项目依次Refresh,再执行Project → Build All。清除旧编译缓存能解决大部分类路径不一致的问题。
5. 验证EJB项目的编译输出
检查hsports-catalog-ejb的Java Build Path → Source标签,确认输出文件夹(默认是bin)下已生成编译后的.class文件。如果没有,单独编译EJB项目。
6. 配置WAR项目的部署装配
右键hsports-catalog-jsf-CDI → Properties → Deployment Assembly,确认hsports-catalog-ejb已添加到部署列表,类型为Project,部署路径设为WEB-INF/lib。如果缺失,点击Add → Project,选择EJB项目添加。
内容的提问来源于stack exchange,提问作者KrOo Pine
相关产品推荐
相关产品推荐

