2012-05-16 30 views
0

我的Java Web應用程序正在使用Apache Tomcat。它的工作需要一些第三方庫(特別是jasperreports 3.7.2)。但現在有必要在WebLogic上移動應用程序。它看起來並沒有使用它之前(在Tomcat上)使用的庫,而是使用了該庫的其他版本(我懷疑默認隨WebLogic提供的版本)。我如何指定庫的具體版本並使WebLogic使用它?我以前從未使用過weblogic。可能是我應該在部署描述符或類似的東西中輸入一些東西?感謝您的回覆。將Web應用程序從Tomcat移動到WebLogic時錯誤的庫版本

+0

你是否爲自己帶來碧玉報告?你是否改變了類加載順序? –

+0

我真的不明白第一個問題。據我瞭解,jasperreports庫位於戰爭檔案庫內的WEB-INF/lib文件夾中。我沒有改變類加載順序。 – kant

+0

jasperreports默認不是Weblogic的一部分。你得到任何錯誤謊言ClassNotFoundExcpetion或NoClassDefFoundError? – JoseK

回答

1

如果您在戰爭中有WEB-INF/lib內部所需的JAR,那麼可以告訴Weblogic將該jar用於Classloader中可能存在的任何其他jar。

  • 使用在weblogic.xml Web應用程序部署描述符中的prefer-web-inf-classes元素(即去的WEB-INF旁邊web.xml

下面是一個例子的weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-web-app 
xmlns="http://www.bea.com/ns/weblogic/90" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd"> 
    <container-descriptor> 
     <prefer-web-inf-classes>true</prefer-web-inf-classes> 
    </container-descriptor> 
</weblogic-web-app> 

注意:在這種用法中,所有的WEB_INF/lib類都將優先於類路徑中的其他版本。

相關問題