2013-01-21 92 views
1

我已經從Glassfish v2.1移動到Glasfiss 3.1.2.2。我有幾個Web應用程序(WAR)在Glassfish v2.1中部署和運行,但我在Glassfish v3.1.2.2中部署了一些Web應用程序。Glassfish 3:Web應用程序部署找不到庫

當我嘗試部署在Gfv3 WAR文件,我總是得到有關在web.xml描述符中定義的庫,例如一個ClassNotFoundException:

<listener> 
    <listener-class>org.directwebremoting.servlet.DwrListener 
    </listener-class> 
</listener> 

<init-param> 
     <param-name>javax.xml.parsers.DocumentBuilderFactory</param-name> 
     <param-value> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl 
     </param-value> 
    </init-param> 

這些庫包含在web-app的WEB-INF/lib目錄中。如果我將它們複製到GlassFish安裝中的domains/domain1/lib文件夾,問題消失,我可以正確部署Web-apps。但我不能使用這種方法,我需要每個Web應用程序都使用它自己的庫。

有誰知道可能是什麼問題?

在此先感謝!

+0

將jar文件放在war文件的適當位置? ('/ WEB-INF/LIB /')? – gaborsch

+0

這已知可在GlassFish 3.1.x中使用,因此我會仔細檢查庫jar是否位於WEB-INF/lib中,並確保它們確實包含在web.xml中命名的類。不要只看你的構建配置;從.war中提取庫.jars並在每個庫.jar中查找預期的.class文件。 – VGR

回答

0

問題是我的Web應用程序有2個描述符文件:一個web.xml和一個sun-web.xml(兼容性問題)。

我刪除了sun-web.xml,問題消失了。我可以在沒有相關問題的情況下部署WAR。

感謝您的回答。

相關問題