首页主机资讯WebLogic在Ubuntu上的常见问题及解决方案

WebLogic在Ubuntu上的常见问题及解决方案

时间2025-10-14 19:13:03发布访客分类主机资讯浏览629
导读:1. 控制台登录缓慢 现象:启动WebLogic后,访问localhost:7001/console时页面长时间刷新,无法快速进入管理界面。 原因:JVM在Linux环境下调用随机数生成器/dev/random时,因等待足够的熵值(系统随机...

1. 控制台登录缓慢
现象:启动WebLogic后,访问localhost:7001/console时页面长时间刷新,无法快速进入管理界面。
原因:JVM在Linux环境下调用随机数生成器/dev/random时,因等待足够的熵值(系统随机性数据)导致阻塞,严重影响启动和登录速度。
解决方案

  • 推荐方法:修改WebLogic启动参数,在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.NoSuchMethodErrorjava.lang.NoClassDefFoundError,常见于org.objectweb.asm.ClassVisitor.visit方法。
原因:WebLogic自带的weblogic.jar与项目中引入的antlr-2.7.6.jar(Spring依赖)或Hibernate的asm.jarasm-attrs.jar存在类路径冲突,导致方法调用失败。
解决方案

  • 针对Spring与antlr冲突:修改域的启动脚本startWebLogic.sh,将项目中的antlr-2.7.6.jar添加到CLASSPATH前面,覆盖weblogic.jar中的旧版本(例如:CLASSPATH="${ DOMAIN_HOME} /lib/antlr-2.7.6.jar:${ SAVE_CLASSPATH} ")。
  • 针对Spring与Hibernate的asm包冲突:移除项目中Hibernate自带的asm.jarasm-attrs.jarcglib-2.1.3.jar,替换为Spring提供的asm-2.2.2.jarasm-commons-2.2.2.jarasm-util-2.2.2.jarcglib-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> (谨慎操作,确认进程无重要业务依赖)。
  • 修改WebLogic端口:若无法终止冲突进程,可通过config/config.xml(域配置文件)或管理控制台修改端口(如将Admin Server的ListenPort从7001改为8001),重启后生效。

4. 权限不足导致无法启动或访问
现象

  • 启动WebLogic时,startWebLogic.sh报错Permission denied(权限不足),无法执行脚本。
  • 访问控制台时,浏览器提示403 Forbidden(禁止访问),无法加载页面。
    原因:WebLogic安装目录或域目录的权限设置不当,导致运行WebLogic的用户(如weblogic)无法读取或执行文件;或域用户未被授予足够的访问权限。
    解决方案
  • 设置正确的目录权限:将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。
解决方案

  • 安装兼容的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使配置生效。
  • 验证JDK版本:运行java -version,确认输出的版本符合WebLogic要求。

6. 内存不足导致启动失败或性能低下
现象

  • 启动WebLogic时,控制台报错OutOfMemoryError: Java heap space(堆内存溢出),无法完成启动。
  • 部署应用后,服务器响应缓慢,甚至出现OutOfMemoryError: PermGen space(永久代空间溢出,Java 8及以上为Metaspace)。
    原因:WebLogic分配的JVM内存不足,无法满足应用的内存需求(如应用占用大量堆内存或元空间)。
    解决方案
  • 调整JVM内存参数:编辑域的启动脚本setDomainEnv.sh,修改JAVA_OPTIONS变量,增加堆内存(-Xms初始堆、-Xmx最大堆)和元空间(-XX:MaxMetaspaceSize)大小(例如:JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m",根据服务器内存调整)。
  • 优化应用内存使用:检查应用是否存在内存泄漏(如未关闭的数据库连接、缓存未清理),减少不必要的对象创建,使用连接池复用资源。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: WebLogic在Ubuntu上的常见问题及解决方案
本文地址: https://pptw.com/jishu/726162.html
VirtualBox支持Debian多屏显示吗 AppImage兼容性问题如何解决

游客 回复需填写必要信息