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
)大?。ɡ纾?code>JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m",根據服務器內存調整)。