2013-01-21 71 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。

感谢您的回答。

相关问题