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

JBoss 兩種類隔離機制配置詳解

     編輯:J2EE

解決部署包之間與覆蓋伺服器類別的版本衝突

部署至 JBoss 時常遇到應用自帶 JAR 與伺服器內建 JAR 版本衝突,或應用間 JAR 衝突。JBoss 提供兩種隔離機制:

  1. 部署包之間隔離
  2. 覆蓋 JBoss Server 類別隔離

1. 部署包隔離配置

修改部署描述檔定義 <loader-repository>,指定唯一 ObjectName(如 com.example:archive=unique-archive-name):

  • .ear:META-INF/jboss-app.xml
  • .war:WEB-INF/jboss-web.xml(JBoss 4.2.1+ 需移除 <class-loading> 包裹)
  • .sar:META-INF/jboss-service.xml

巢狀部署包(如 EAR 含 WAR/SAR)僅最上層描述檔生效。

2. 覆蓋伺服器類別隔離

在 <loader-repository-config> 設定 Java2ParentDelegation=false,讓應用優先載入自身類別:

  • jboss-app.xml、jboss-web.xml、jboss-service.xml 均支援此設定
  • .war 另需在 <class-loading> 設 Java2ClassLoadingCompliance="false"

類別載入順序(EAR/WAR)

  1. WEB-INF/lib (WAR)
  2. server/default/lib JAR
  3. Tomcat JAR (server/default/deploy/jbossweb-tomcatxxx.sar) 與 server/default/lib 混合

相關參考:淺談如何將 EJB 部署在 JBoss 下、Apache HTTP Server 與 Tomcat/JBoss 配置 等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved