首先需要明确是哪个端口发生冲突(如WebLogic默认的管理端口7001、节点管理器端口5556或自定义应用端口)。使用以下命令查看端口占用状态:
sudo netstat -tlnp | grep <端口号> # 替换<端口号>为冲突的端口(如7001)
或使用更详细的ss
命令:
sudo ss -tulnp | grep <端口号>
命令输出会显示占用端口的进程ID(PID)和进程名称(如java
、nginx
等)。
若确认占用端口的进程不是WebLogic自身(如其他Java应用、Nginx等),可以通过PID终止该进程:
sudo kill -9 <PID> # 替换<PID>为上一步查到的进程ID
终止后再次检查端口是否释放:
sudo netstat -tlnp | grep <端口号>
若端口已释放,可重新启动WebLogic。
若端口被必需服务占用(如无法终止的数据库服务),需修改WebLogic的端口配置。
方法一:通过管理控制台修改(推荐)
http://localhost:7001/console
,若7001端口冲突,需用未冲突的端口访问);http://localhost:8081/console
)即可生效。方法二:修改配置文件
config.xml
文件(路径:$DOMAIN_HOME/config/config.xml
,如/home/weblogic/user_projects/domains/base_domain/config/config.xml
);<server>
标签(对应需要修改的服务器,如AdminServer
),修改<listen-port>
的值(如将7001
改为8081
):<server>
<name>AdminServer</name>
<listen-port>8081</listen-port> <!-- 修改后的端口 -->
<listen-address></listen-address>
</server>
若通过startWebLogic.sh
或shutdown.sh
脚本启动WebLogic,需检查脚本中是否有硬编码的端口(如connect(url='t3://localhost:7001', adminServerName='AdminServer')
)。若有,需将脚本中的端口修改为新的端口(如localhost:8081
),避免启动时报错。
修改完成后,重启WebLogic并检查新端口是否正常监听:
# 重启WebLogic
cd $DOMAIN_HOME/bin
./stopWebLogic.sh # 停止WebLogic
./startWebLogic.sh # 启动WebLogic
# 检查新端口是否监听
sudo netstat -tlnp | grep <新端口号> # 如8081
若输出显示WebLogic进程正在监听新端口,则说明修改成功。
config.xml
文件(如cp config.xml config.xml.bak
),避免配置错误导致无法启动;shutdown.py
脚本中的端口(路径:$DOMAIN_HOME/bin/shutdown.py
),否则无法正常关闭WebLogic;