【问题标题】:Web application doesn't start when JAR placed within lib folder当 JAR 放在 lib 文件夹中时,Web 应用程序不启动
【发布时间】:2013-05-26 17:55:20
【问题描述】:

我遇到了一个奇怪的问题 - 当我将我的应用程序 JAR 放在 WEB-INF/lib 目录中时,它不起作用。但是当创建一个 WEB-INF/classes 目录并在那里解压缩我的 JAR 时,它工作得很好。

有什么帮助吗?

【问题讨论】:

  • 请定义doesn't work。您有可以向我们展示的异常堆栈跟踪吗?不幸的是,我的读心设备今天在店里。
  • 你使用的是什么网络服务器?

标签: java jakarta-ee jar


【解决方案1】:

您所描述的行为是合乎需要且完全自然的。

  • /WEB-INF/classes 必须包含 Java EE 应用程序的类。如果您使用 IDE 打包 WAR(Web 应用程序存档)文件,您会注意到您的应用程序被准确地放置在那里。 WAR 文件是通常的部署方式。

  • 顾名思义,/WEB-INF/liblibraries 的默认搜索路径。库通常以 JAR 文件的形式分发,因此它们放置在 lib 目录中。

总之,现在很明显,如果您将应用程序 JAR 放在 lib 目录中,因为两个错误 - 您的文件不应该打包在任何存档中并且 lib 目录用于(打包)库。

【讨论】:

  • 我已经创建了一个包含我所有 JEE 应用程序类的 jar,并且打算将生成的 jar 用作打包库,这可能吗?
  • 这绝对是可能的,你只需要了解应用程序/库的要点。如果你正在开发一个库,没关系,打包一个 jar 并将它放在 library 文件夹中。但是不要怀疑您是否启动了您的网络服务器并且它拒绝启动,因为实际上没有应用程序 任何事情或提供 servlet。要测试您的应用程序,请创建实际使用您的库的内容。
【解决方案2】:

您是否尝试将 JAR 文件拖放到 WEB-INF/lib 目录中?确保只是复制它,而不是将整个 JAR 提取到文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多