首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

主流 Java Web 服務器對比:JRun、WebSphere、WebLogic 架構特點與配置實戰

     編輯:關於JSP

前言

Tomcat/Jetty 適合中小項目,大型企業級應用常選 **JRun、IBM WebSphere、BEA WebLogic (現 Oracle WebLogic)**。本文對比三者架構特點、核心配置、管理控制台、部署模型、典型故障排查,助力技術選型與運維。

一、Allaire JRun (已停止更新,歷史參考)

定位

  • 最早支援 JSP 1.0 的商業引擎,可**掛載到 IIS/Netscape/Apache** 作為 Servlet 容器擴展。
  • 版本:Standard (5 併發免費)、Professional (生產、無限併發、多 JVM)、Enterprise (集群、負載均衡)。

核心優勢 (當年)

  1. 動態標簽庫、頁面編譯緩存、Servlet 串聯/過濾、虛擬主機、遠程管理 Applet。
  2. 安裝向導、Swing 管理控制台、任務跟蹤。
  3. 100% 純 Java,跨平台,支援多 JVM 隔離應用。

支援的 Web Server

  • Microsoft IIS / PWS
  • Netscape Enterprise / FastTrack
  • Apache, O'Reilly WebSite Pro, StarNine WebSTAR, Novell NetWare 5

二、IBM WebSphere Application Server (WAS)

架構特點

  • **企業級全棧**:Servlet/JSP、EJB、JMS、JCA、Web Services、Security、事務、集群、動態緩存、Edge 組件。
  • **單元/節點/細胞** 拓撲:Cell 包含多 Node,Node 包含多 Server,部署管理器 (DMGR) 統一配置下發。
  • **類加載隔離**:父優先/父最後 (PARENT_LAST) 可解決應用與容器庫衝突。

核心配置文件

  • server.xml:服務器、服務、連接器、虛擬主機、應用部署。
  • web.xml / ibm-web-bnd.xmi:JNDI 綁定、資源引用、安全映射。
  • resources.xml:JDBC/JMS/URL/郵件資源定義。

常見問題 FAQ 精選

WebSphere Studio (開發工具) 提示

  • JSP 版本設置:項目屬性 → 高級 → JSP 版本選 1.0 (匹配 WAS 運行時)。
  • 拖放 Java 文件生成 jsp:useBean:工具 → 選項 → HTML 元素選 JSP:useBean。
  • 遠程同步 VAJ:啟動 VAJ Remote Access to Tool API,Studio 插入 → 文件 → 從外部數據源 → VAJ。

三、BEA WebLogic Server (現 Oracle WebLogic)

配置核心:weblogic.properties (舊版) / config.xml (現代)

# 經典屬性 (weblogic.properties 風格)
weblogic.httpd.documentRoot=public_html/
weblogic.password.system=encrypted_password
weblogic.system.listenPort=7001
weblogic.httpd.servlet.classpath=/weblogic/myserver/servletclasses

# Servlet 註冊 (舊版必須註冊才能訪問)
weblogic.httpd.register.helloWorld=examples.servlets.HelloWorldServlet
# 實際類路徑:/weblogic/myserver/servletclasses/examples/servlets/HelloWorldServlet.class

# 管理控制台 Servlet 群
weblogic.httpd.register.AdminMain=admin.AdminMain
# 訪問 https://host:7001/AdminMain 輸入 system/password 進入管理台

現代 WebLogic (12c/14c) 關鍵點

  • Domain:頂級管理單元,包含 AdminServer + 多 ManagedServer + Cluster。
  • 配置中心:config.xml + jdbc/ jms/ 子目錄,WLST (Python) 腳本自動化運維。
  • 部署模型:.war/.ear → AdminServer 推送 → ManagedServer 階段模式/外部階段/無階段。
  • 類加載:weblogic-application.xml <prefer-application-packages> 解決 Jar 衝突。
  • 集群:單播/組播、會話複製 (In-Memory/DB/JDBC)、負載演算法 (輪詢/權重/隨機)。

典型故障排查

問題解決
Web 應用如何加載非 Servlet/EJB 類?管理控制台 → Web 應用 → 高級 → 可重新加載類路徑,放入 JAR/目錄。
調用 JAR 類報 ClassNotFound?類路徑必須包含 **JAR 完整路徑**,而非目錄。
Model/Clone 概念?Model = 應用模板;Clone = 基於模板創建的實例,用於負載均衡。
運行時能刪除日誌嗎?**不能**,會導致寫入停滯。需停服務器 → 刪除/改名 → 重啟。
啟動報端口 9000 衝突?AIX X-windows 佔用。修改 admin.config com.ibm.ejs.sm.adminServer.lsdPort=9005。
EJB 部署 NoClassDefFoundError?將支持 JAR 加入應用服務器類路徑 -classpath 或 MANIFEST.MF Class-Path。

四、三大商業服務器對比總結

現象排查方向
啟動慢/卡住JRockit/JDK 版本、熵源不足 (-Djava.security.egd=file:/dev/./urandom)、DB 連接池初始化阻塞
ClassCastException / LinkageError父優先/父最後策略錯誤,檢查 prefer-application-packages、prefer-web-inf-classes
會話丟失集群會話複製配置、Sticky Session、序列化實現 Serializable
JDBC 連接洩漏連接池 Inactive Connection Timeout、Test Connections On Reserve、代碼未 close
維度JRun (歷史)WebSphereWebLogic
定位輕量 Servlet/JSP 引擎全棧 Java EE/EJB/微服務全棧 Java EE/雲原生/高性能
管理控制台Swing Applet/遠程ISC (Web 管理控制台) + wsadminWebLogic Console + WLST (Python)
集群/高可用Pro/Enterprise 支援ND (Network Deployment) 強大Cluster + Whole Server Migration
類加載隔離多 JVM 物理隔離模塊類加載器、父最後FilteringClassLoader、應用包優先
授權模式CPU/併發PVU (Processor Value Unit)Core/Named User
現狀**EOL (Adobe 收購後停止)**活躍 (WAS 9/Traditional + Liberty)活躍 (WebLogic 14c + Kubernetes Operator)

五、選型建議

  1. 中小項目/微服務/雲原生:Tomcat / Jetty / Undertow + Spring Boot,輕量、啟動快、容器友好。
  2. 傳統大型單體、重 EJB/JMS/JCA、IBM 技術棧:WebSphere Traditional (ND) 或 Liberty (輕量化)。
  3. Oracle 生態、高併發、需 WebLogic 特有功能 (JMS 高級、Tuxedo 集成、Coherence 緩存):WebLogic 14c。
  4. 避免新項目選 JRun:已無安全更新、社區支持、人才市場。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved