当我继续使用Ant Build Scripts,Spring和Glassfish进行调查时,我在向Glassfish部署WAR时遇到了另一个问题。
我的构建脚本似乎正确编译并生成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的deploy命令设置类路径。
我还尝试使用命令行asadmin任务和glassfish的管理控制台部署它,结果相同。
任何人都可以指出我正确的方向,因为我觉得我只是围成一圈?!如果需要任何其他信息,请告诉我
非常感谢。
答案 0 :(得分:0)
当你说“它在那里”时,我认为这意味着包路径HelloController.class
中的WEB-INF/classes
文件夹中有uk.co.crowderconsult.spider.controllers
。真的吗?如果是,则类加载器应该找到它。如果没有,那就解释了为什么你有CNFE。
你是对的:如果你的WAR文件构造正确,你不必做任何其他事情来向网络服务器解释CLASSPATH。