簡體   English   中英

如何優先於Weblogic域中的JAR而不是來自weblogic系統的JAR

[英]How to prefer JARs from Weblogic domain over those from weblogic system

我正在使用Weblogic Server 12.1.1並將一些JAR復制到我的域的lib文件夾中。 其中一個JAR是一個org.apache.commons.io jar。 現在我遇到的問題是Weblogic本身在其系統類路徑中帶有不同版本的commons-io ,因此我得到了NoSuchMethodErrors 有沒有辦法配置Weblogic來優先選擇來自域的庫而不是來自Weblogic系統的庫?

Filtering Classloader僅適用於隨應用程序提供的那些JAR( WEB-INF/lib )。

使用weblogic.xml描述符中的以下選項之一:

  • prefer-application-packages
  • prefer-web-inf-classes

詳細信息在此處描述。

為了完整性,我必須說將commons-io放入domain / lib文件夾是一個糟糕的解決方案。 您描述的問題是不將廣泛使用的庫放入此文件夾的充分理由。 更糟糕的想法可能會避免這個問題:在類加載器層次結構中將該庫移到更高的位置。 如果你堅持從應用程序交付物中排除commons-io,你可以在jdk中安裝commons-io作為認可的lib。 (請參閱此處 )這將為您的每個應用程序(包括weblogic本身)確定您的commons-io版本。 當然,如果您需要聯系weblogic支持,這將是一個問題。

如果您需要將JAR放入域/ lib,我認為您必須編輯setDomainEnv.cmd並修改PRE_CLASSPATH變量。

示例:set PRE_CLASSPATH = C:\\ myinstallation \\ Middleware \\ wlserver_12.1 \\ domains \\ mydomain \\ lib \\ myjar.jar

但是,如果可以將JAR放在WEB-INF / lib或APP-INF / lib中,那么使用@Blekit解決方案,它更清晰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM