【问题标题】:ClassNotFoundException when attempting to deploy a WAR file to Glassfish尝试将 WAR 文件部署到 Glassfish 时出现 ClassNotFoundException
【发布时间】:2011-09-06 16:10:40
【问题描述】:

当我继续使用 Ant 构建脚本、Spring 和 Glassfish 进行调查时,在将 WAR 部署到 Glassfish 时遇到了另一个问题。

我的构建脚本似乎可以正确编译并生成一个 war 文件,但是当我使用它来部署它时

<glassfish-deploy force="true" file="${dist.dir}/${name}.war" />

我收到以下错误消息

[glassfish-deploy] remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: uk.co.crowderconsult.spider.controllers.HelloController. Please see server.log for more details.

我认为根本问题是

java.lang.ClassNotFoundException: uk.co.crowderconsult.spider.controllers.HelloController

但是,它找不到的类是我编写并包含在 WAR 文件中的类之一。我通过使用 winzip 打开 WAR 进行了检查,类文件就在其中。

通常我会认为我没有在类路径中包含某些内容,但是 1)该类在我要部署的文件中,所以无论如何都希望它在类路径上,并且 2) 我不知道如何设置 glassfish 的部署命令的类路径。

我也尝试使用命令行 asadmin 任务和 glassfish 的管理控制台部署它,结果相同。

谁能指出我正确的方向,因为我觉得我只是在兜圈子?!如果需要任何其他信息,请告诉我

非常感谢。

【问题讨论】:

    标签: java deployment ant glassfish war


    【解决方案1】:

    当您说“它在那里”时,我将其解释为包路径 uk.co.crowderconsult.spider.controllers 中的 WEB-INF/classes 文件夹中有一个 HelloController.class。真的吗?如果是,类加载器应该找到它。如果没有,那就可以解释为什么你有 CNFE。

    你是对的:如果你的 WAR 文件构造正确,你不应该做任何其他事情来向 web 服务器解释 CLASSPATH。

    【讨论】:

    • 感谢您的回复 WAR 对象内的“它在那里”有 3 个文件夹,一个 META-INF、WEB-INF 和一个映射到包列表 uk.co 等的文件夹。在该文件夹中有一个 HelloController.class 文件。但是,这是一个单独的文件夹,不在 WEB-INF/classes 下,这表明我没有正确创建 WAR 文件?我正在使用 WAR ant 任务来构建它,所以我想我会深入研究一下
    • 好吧,看来我没有正确创建 WAR,我没有指定类嵌套元素,所以我的 java 类不在正确的位置。添加此嵌套元素可以解决问题,我在下面包含了任务以供参考。 ''
    • @duffymo 但是关于尝试从 jar 加载的类。对我来说,它给出了 >> java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver from [Module "deployment.APP.war" from Service Module Loader]
    • 我原来的答案已经九岁多了。问一个新问题。答案很明显:Oracle JDBC 驱动程序 JAR 不在 WAR 中。你有一个包装问题。使用 zip 或 tar 打开 WAR 并检查内容。 JAR 不存在或者它不是 CLASSPATH 的一部分。 Google 以获取有关如何正确创建 WAR 文件的说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多