Java Glassfish 3:web应用程序部署不&x27;我找不到图书馆

Java Glassfish 3:web应用程序部署不&x27;我找不到图书馆,java,glassfish,glassfish-3,war,Java,Glassfish,Glassfish 3,War,我已经从Glassfish v2.1迁移到Glasfiss 3.1.2.2。我在Glassfish v2.1中部署并运行了几个web应用程序(WAR),但在Glassfish v3.1.2.2中部署其中一些应用程序时遇到了问题 当我尝试在Gfv3中部署WAR文件时,我总是得到一个与web.xml描述符中定义的库相关的ClassNotFoundException,例如: <listener> <listener-class>org.directwebremoting

我已经从Glassfish v2.1迁移到Glasfiss 3.1.2.2。我在Glassfish v2.1中部署并运行了几个web应用程序(WAR),但在Glassfish v3.1.2.2中部署其中一些应用程序时遇到了问题

当我尝试在Gfv3中部署WAR文件时,我总是得到一个与web.xml描述符中定义的库相关的ClassNotFoundException,例如:

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

org.directwebremoting.servlet.DwrListener


javax.xml.parsers.DocumentBuilderFactory
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
这些库包含在web app web-INF/lib目录中。如果我将它们复制到Glassfish安装中的domains/domain1/lib文件夹中,问题就解决了,我可以正确地部署web应用程序。但我不能使用这种方法,我需要每个web应用使用自己的库

有人知道问题出在哪里吗


提前谢谢

问题在于我的Web应用程序有两个描述符文件:一个Web.xml和一个sun-Web.xml(用于兼容性)

我删除了sun-web.xml,问题就消失了。我可以在没有相关问题的情况下部署战争


谢谢您的回答。

jar文件在war文件中的位置正确吗?(
/WEB-INF/lib/
)?这在GlassFish 3.1.x中工作,因此我将仔细检查库jar是否在WEB-INF/lib中,以及它们是否确实包含WEB.xml中命名的类。不要只看你的构建配置;从.war中提取library.jars,并在每个library.jar中查找所需的.class文件。
    <init-param>
        <param-name>javax.xml.parsers.DocumentBuilderFactory</param-name>
        <param-value> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
        </param-value>
    </init-param>