在 Debian 上出现 WebLogic 冲突,通常不是 Debian 系统本身的问题,而是 端口、Java 版本、用户权限、或已有进程 之间的冲突。下面按常见场景给你一套排查与解决方案。
WebLogic 默认使用以下端口:
| 用途 | 默认端口 |
|---|---|
| Admin Server | 7001 |
| SSL | 7002 |
| Node Manager | 5556 |
| 受管 Server | 8001+ |
sudo netstat -tulnp | grep 7001
# 或
sudo ss -tulnp | grep 7001
config/config.xml → <listen-port>Debian 常自带 OpenJDK,而 WebLogic 对 JDK 版本要求严格。
java -version
| WebLogic | 推荐 JDK |
|---|---|
| 12c (12.2.1.x) | JDK 8 |
| 14c | JDK 11 |
sudo update-alternatives --config java
或在 setDomainEnv.sh 中强制指定:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
⚠️ 不建议混用 OpenJDK 与 Oracle JDK
同一台 Debian 启动多个 Domain 或 Server。
ps -ef | grep weblogic
WebLogic 不建议用 root 运行
sudo useradd -m weblogic
sudo chown -R weblogic:weblogic /u01/weblogic
su - weblogic
Debian 使用 systemd,而 WebLogic 脚本是 SysV 风格。
创建 systemd 服务:
# /etc/systemd/system/weblogic.service
[Unit]
Description=WebLogic Server
After=network.target
[Service]
Type=forking
User=weblogic
WorkingDirectory=/u01/weblogic/user_projects/domains/base_domain
ExecStart=/u01/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh
ExecStop=/u01/weblogic/user_projects/domains/base_domain/bin/stopWebLogic.sh
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable weblogic
sudo systemctl start weblogic
Address already in use✅ 改端口 / 杀进程
Unsupported major.minor version✅ JDK 版本不匹配
Could not create the Java Virtual Machine✅ 内存参数过大,修改:
setDomainEnv.sh
-Xms512m -Xmx1024m
✅ 使用 Oracle JDK(不用 OpenJDK)
✅ 每个 Domain 一个用户
✅ 明确端口规划
✅ 不要混装多个 WebLogic 版本
✅ 用 systemd 管理,而不是手动 nohup
你可以直接贴出:
cat /etc/debian_version)server.log / nohup.out)我可以一步一步帮你定位 ✅