溫馨提示×

WebLogic在Ubuntu上的常見問題及解決方案

小樊
42
2025-10-14 09:08:43
欄目: 智能運維

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.jar、asm-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.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>(謹慎操作,確認進程無重要業務依賴)。
  • 修改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)大?。ɡ纾?code>JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m",根據服務器內存調整)。
  • 優化應用內存使用:檢查應用是否存在內存泄漏(如未關閉的數據庫連接、緩存未清理),減少不必要的對象創建,使用連接池復用資源。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女