部署在WebLogic的SpringBoot WAR包通过Postman调用REST服务遇连接拒绝求助
排查WebLogic部署REST服务的连接拒绝问题
1. 确认WebLogic实际监听端口
- 登录WebLogic控制台,进入服务器→目标服务器→监听端口,核实是否为8021。注意WebLogic的管理端口与应用服务端口是分开的,不要混淆。
- 执行端口占用检查命令:
- Windows:
netstat -ano | findstr :8021 - Linux:
netstat -tulpn | grep :8021
若端口未被任何进程占用,说明WebLogic未成功启动或端口配置错误。
- Windows:
2. 检查WAR包部署状态
- 登录WebLogic控制台,进入部署→目标应用,确认状态为Active(活动)。若状态为Prepared(准备)或Failed(失败),需查看部署日志定位问题。
- 查看WebLogic日志文件(路径一般为
domain_home/servers/目标服务器/logs/目标服务器.log),搜索Error或Exception关键词,排查部署时的依赖缺失、配置错误等问题。
3. 验证application.properties配置
- 若为Spring Boot应用,WebLogic会接管端口配置,
server.port参数不会生效,需以WebLogic控制台的端口设置为准。 - 若为JAX-RS应用,确认
@ApplicationPath注解的根路径是否正确,例如@ApplicationPath("/api"),则请求URL需包含/api前缀。
4. 核对请求路径完整性
- 完整请求URL需包含应用上下文路径(默认是WAR包名称,除非部署时手动修改)。例如:
- WAR包名为
my-rest-app.war - Controller注解为
@GetMapping("/hello") - 正确请求URL应为:
http://127.0.0.1:8021/my-rest-app/hello
遗漏上下文路径会导致请求失败,需重点核对。
- WAR包名为
5. 测试本地端口连通性
- 用
telnet 127.0.0.1 8021或curl http://127.0.0.1:8021测试端口是否可连通。若连接失败,说明端口未开放:- Windows:检查防火墙是否允许8021端口通行
- Linux:执行
ufw allow 8021或firewall-cmd --add-port=8021/tcp --permanent开放端口,随后重启防火墙
6. 检查WebLogic HTTP监听配置
- 登录WebLogic控制台,进入环境→服务器→目标服务器→协议→HTTP,确认监听地址为
0.0.0.0或127.0.0.1。若设置为其他IP,使用127.0.0.1将无法访问。 - 确认HTTP监听未被禁用。
补充:Spring Boot应用部署WebLogic的特殊检查
- 确保项目包含
SpringBootServletInitializer子类:
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(YourApplication.class); } }
- 核实WebLogic版本与SpringBoot版本兼容(例如SpringBoot 2.x需WebLogic 12.2.1.3及以上版本)
内容的提问来源于stack exchange,提问作者David Sandoval
相关产品推荐
相关产品推荐

