在 CentOS 上调试 WebLogic,通常分为 启动调试、日志分析、JVM 调试、性能与线程分析、配置排查 几个方面。下面按实战场景给你一个完整指南。
| 调试目的 | 方法 |
|---|---|
| 启动失败 | 查看日志 + 启动参数 |
| 应用报错 | AdminServer.log / server.log |
| 远程调试 | JPDA(IDEA / Eclipse) |
| 性能问题 | JVM GC、线程 dump |
| 配置问题 | config.xml、控制台 |
| 端口/网络 | netstat / ss / telnet |
$WL_HOME/user_projects/domains/<domain>/servers/<server_name>/logs
常见日志:
| 日志 | 作用 |
|---|---|
AdminServer.log |
AdminServer 日志 |
<server>.log |
被管服务器日志 |
access.log |
HTTP 访问日志 |
diagnostic.log |
诊断日志 |
查看实时日志:
tail -f AdminServer.log
cd $DOMAIN_HOME/bin
./startWebLogic.sh
如果启动失败,常见错误:
config.xml 错误修改:
$DOMAIN_HOME/bin/setDomainEnv.sh
添加:
export JAVA_OPTIONS="$JAVA_OPTIONS -Dweblogic.debug.DebugHttp -Dweblogic.debug.DebugJNDI"
或控制台:
Environment → Servers → <Server> → Debug
修改 startWebLogic.sh:
export JAVA_OPTIONS="$JAVA_OPTIONS -Xdebug -Xnoagent -Djava.compiler=NONE \
-Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n"
说明:
address=8453 调试端口suspend=n 不阻塞启动重启 WebLogic。
Run → Edit Configurations → Remote JVM Debug
Host: CentOS IP
Port: 8453
ps -ef | grep java
-Xms1024m
-Xmx1024m
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/logs/gc.log
jstack <pid> > thread_dump.txt
或:
kill -3 <pid>
分析重点:
BLOCKEDDeadlocknetstat -tunlp | grep 7001
或:
ss -lntp
firewall-cmd --list-ports
firewall-cmd --add-port=7001/tcp --permanent
firewall-cmd --reload
$DOMAIN_HOME/config/config.xml
常见错误:
检查:
http://IP:7001/console
可能原因:
| 错误 | 原因 |
|---|---|
Address already in use |
端口占用 |
ClassNotFoundException |
包未部署 |
OutOfMemoryError |
内存不足 |
Server state is SHUTDOWN |
启动失败 |
StuckThread |
线程阻塞 |
你可以直接说:
我可以 逐行帮你分析日志。