2011-11-17 301 views
4

必須爲Web-INF中指定的類指定prefer-web-inf-classes,以優先考慮weblogic服務器的應用程序庫中存在的類。我有一個特殊情況,我需要類加載器使用WEB-INF文件夾中的一個特定jar。有沒有辦法做到這一點?Weblogic配置 - prefer-web-inf-classes

+0

這個類是開源的還是第三方的jar或者你的自定義類?我想知道這個類是單獨需要在WEB-INF中還是不能從App類加載器加載整個jar(包括你的類)? – JoseK

+0

嗨,何塞,特定的jar是apache-commons-lang。我很抱歉 - 這是一個罐子,而不是一個班級。有沒有辦法做到這一點?謝謝。 –

+1

不僅僅是來自web-inf的一個罐子。這種情況下的解決方案是mgaert的答案。如果可能,將所有其他文件移到APP-INF中,並使用prefer-web-inf保留該文件,否則在application.xml中使用包級別條目(即Filtering Classloader) – JoseK

回答

2

你可能想看Filtering Classloaders

這允許在逐個包級指定要使用哪個類加載器。

你想成爲小心這一點,雖然。你確定你已經是在CLassloader地獄,所以你必須訴諸這種東西,真的沒有其他選擇嗎?

您是否考慮將JAR放入EAR的APP-INF/lib文件夾中?或將「除WEB-INF/lib中所需的所有文件」移出到APP-INF/lib?

+0

謝謝mgaert。我只是有一個戰爭檔案,它並沒有捆綁到耳邊。是否有可能讓過濾類加載器在WEB-INF \ lib中指定特定的包? –

1

要優先於您的WEB-INF/lib中所有與您的WebLogic lib綁定的包,將<prefer-web-inf-classes>設置爲weblogic.xmlapplication-weblogic.xml爲true。

<container-descriptor> 
    <prefer-web-inf-classes>true</prefer-web-inf-classes> 
</container-descriptor> 

有關更多詳細信息請參閱使用篩選類加載器,weblogic.xml部署描述符元素和WebLogic的類加載器,過濾的ClassLoader類加載器和分析工具。

如果您不確定是否加載了正確的類,則可以使用WebLogic的Classloader分析工具。