1. 控制台登录缓慢
现象:启动WebLogic后,访问localhost:7001/console时页面长时间刷新,无法快速进入管理界面。
原因:JVM在Linux环境下调用随机数生成器/dev/random时,因等待足够的熵值(系统随机性数据)导致阻塞,严重影响启动和登录速度。
解决方案:
setDomainEnv.sh(位于user_projects/domains/base_domain/bin/)中添加-Djava.security.egd=file:/dev/./urandom,强制JVM使用/dev/urandom(非阻塞随机数生成器),替代默认的/dev/random。/dev/random指向/dev/urandom(需谨慎操作,可能影响系统其他依赖/dev/random的服务):mv /dev/random /dev/random.ORIG; ln -s /dev/urandom /dev/random。2. jar包冲突(如Spring与Hibernate的asm包冲突)
现象:部署Spring项目时,控制台报错java.lang.NoSuchMethodError或java.lang.NoClassDefFoundError,常见于org.objectweb.asm.ClassVisitor.visit方法。
原因:WebLogic自带的weblogic.jar与项目中引入的antlr-2.7.6.jar(Spring依赖)或Hibernate的asm.jar、asm-attrs.jar存在类路径冲突,导致方法调用失败。
解决方案:
startWebLogic.sh,将项目中的antlr-2.7.6.jar添加到CLASSPATH前面,覆盖weblogic.jar中的旧版本(例如:CLASSPATH="${DOMAIN_HOME}/lib/antlr-2.7.6.jar:${SAVE_CLASSPATH}")。asm.jar、asm-attrs.jar、cglib-2.1.3.jar,替换为Spring提供的asm-2.2.2.jar、asm-commons-2.2.2.jar、asm-util-2.2.2.jar、cglib-nodep-2.1_3.jar(避免重复加载冲突的asm类)。3. 端口冲突
现象:启动WebLogic时,控制台报错Address already in use(地址已被使用),导致服务器无法启动。
原因:WebLogic默认使用的端口(如7001、7002、8001等)已被Ubuntu系统中的其他服务(如Apache、Nginx、MySQL)占用。
解决方案:
sudo lsof -i :7001(替换为冲突端口)命令,获取进程ID(PID)。sudo kill -9 <PID>(谨慎操作,确认进程无重要业务依赖)。config/config.xml(域配置文件)或管理控制台修改端口(如将Admin Server的ListenPort从7001改为8001),重启后生效。4. 权限不足导致无法启动或访问
现象:
startWebLogic.sh报错Permission denied(权限不足),无法执行脚本。403 Forbidden(禁止访问),无法加载页面。weblogic)无法读取或执行文件;或域用户未被授予足够的访问权限。/opt/weblogic)和域目录(如/opt/weblogic/user_projects/domains/base_domain)的所有权赋予weblogic用户及组,执行sudo chown -R weblogic:weblogic /opt/weblogic;并设置适当的权限(如755用于目录、644用于文件):sudo chmod -R 755 /opt/weblogic。weblogic用户身份启动服务:使用sudo su - weblogic切换到weblogic用户,再进入域目录执行./startWebLogic.sh。5. JDK版本不兼容
现象:启动WebLogic时,控制台报错Unsupported major.minor version(不支持的版本),或无法找到JAVA_HOME环境变量。
原因:Ubuntu系统安装的JDK版本与WebLogic要求的版本不匹配(如WebLogic 12c需要JDK 8及以上,而系统默认安装了JDK 7);或JAVA_HOME未正确配置,导致WebLogic无法定位JDK。
解决方案:
sudo apt install openjdk-11-jdk(Ubuntu 20.04+)或下载Oracle JDK(如JDK 8)并解压到指定目录(如/usr/local)。JAVA_HOME环境变量:编辑/etc/profile文件,添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(根据实际JDK路径调整),并执行source /etc/profile使配置生效。java -version,确认输出的版本符合WebLogic要求。6. 内存不足导致启动失败或性能低下
现象:
OutOfMemoryError: Java heap space(堆内存溢出),无法完成启动。OutOfMemoryError: PermGen space(永久代空间溢出,Java 8及以上为Metaspace)。setDomainEnv.sh,修改JAVA_OPTIONS变量,增加堆内存(-Xms初始堆、-Xmx最大堆)和元空间(-XX:MaxMetaspaceSize)大小(例如:JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m",根据服务器内存调整)。