【问题标题】:Glassfish 3: web application deployment doesn't find librariesGlassfish 3:Web 应用程序部署找不到库
【发布时间】:2013-01-21 17:21:10
【问题描述】:

我已从 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>

    <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 安装中的 domain/domain1/lib 文件夹,问题就会消失,我可以正确部署网络应用程序。但我不能使用这种方法,我需要每个网络应用程序使用自己的库。

有谁知道可能是什么问题?

提前致谢!

【问题讨论】:

  • jar 文件是否在您的 war 文件中的正确位置? (/WEB-INF/lib/)?
  • 这在 GlassFish 3.1.x 中是已知的,所以我会仔细检查库 jar 是否在 WEB-INF/lib 中,并且它们确实包含在您的 web.xml 中命名的类。 xml。不要只看你的构建配置;从 .war 中提取库 .jar,并在每个库 .jar 中查找预期的 .class 文件。

标签: java glassfish glassfish-3 war


【解决方案1】:

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

我删除了 sun-web.xml 并且问题消失了。我可以部署 WAR 而不会出现之前的相关问题。

感谢您的回答。

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多