求助:使用Open Liberty的Eclipse项目无法找到javax.servlet.*类
尝试运行一个基于Open Liberty的Java项目,但提示找不到Servlet API。相关配置如下:
- 使用WebSphere Application Server Liberty Profile v8.5服务器,且已指向有效的Open Liberty实例;
- 项目facets中已勾选Dynamic Web Module和WebSphere Application Server Liberty Profile。
补充配置信息:
- Java版本:1.8
- Open Liberty版本:21.0.0.11
- MyEclipse版本:2020.9.16
- Facets配置:Dynamic Web Module 3.0
- Open Liberty特性配置:
<featureManager> <feature>javaee-8.0</feature> <feature>restConnector-2.0</feature> <feature>monitor-1.0</feature> <feature>localConnector-1.0</feature> </featureManager>
修正Web模块版本与Java EE版本的匹配性
Java EE 8对应Servlet 4.0规范,但你当前配置的Dynamic Web Module是3.0(对应Servlet 3.0),版本不匹配会导致IDE无法正确关联Servlet API依赖。在MyEclipse中右键项目→属性→Project Facets,将Dynamic Web Module版本改为4.0后保存。确认IDE已关联Open Liberty的API依赖
即便勾选了WebSphere Application Server Liberty Profile facet,IDE可能未自动将Open Liberty提供的Servlet API加入构建路径。检查步骤:右键项目→属性→Java Build Path→Libraries,确认是否存在WebSphere Application Server Liberty Profile库;若没有,点击Add Library→选择Server Runtime→选中你的Open Liberty服务器添加即可。统一服务器配置版本
你使用的服务器配置是WebSphere Application Server Liberty Profile v8.5,但实际指向的是Open Liberty 21.0.0.11,版本不匹配会造成IDE识别混乱。建议在MyEclipse中重新创建Open Liberty服务器实例,直接选择21.0.0.11版本,替换原有v8.5配置,确保服务器配置与实际运行实例一致。
内容的提问来源于stack exchange,提问作者Mr Smith

