NetBeans 中的项目文件夹名称干扰了 JSF/GlassFish 部署



我不确定这是JSF问题还是NetBeans问题。我对两者都很陌生。 我也不确定stackoverflow是否是最好的SE站点,所以如果我错了,请帮助我并迁移它。 谢谢。

我在文件夹中有一个项目,比如说 C:\Folder1,当我尝试在 GlassFish 服务器上"部署"它时,我收到关于缺少类的奇怪错误......尽管该类甚至不是该项目的一部分。 我相信 C:\Folder1 可能是我过去用于不同项目的东西,但这早已不复存在。 所以这个新项目,如果我把它移动到文件夹 C:\Folder1a 或 C:\Folder2 或其他任何东西,除了 C:\Folder1...然后它将部署正常。但是,如果我将其移回 Folder1(即该级别下的完全相同的目录结构(,我会收到来自 GlassFish 服务器的神秘错误消息,称无法找到它甚至不需要的类。

我在其他地方得到了一个建议,尝试"清理"并重建项目,但这没有奏效。以下是有关我遵循的步骤的更多详细信息。

在 Netbeans 中创建新项目,将其指向名为 Ex2605 的空文件夹。之后,我将几个源文件(.java 和 .xhtml(带入该 Ex2605 目录结构中。当我清理和构建时,它说可以。当我尝试部署时,出现此错误:

部署期间发生错误:加载应用程序时出现异常: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: LShoppingCart;.请参阅服务器.log 了解更多详情。C:\\Ex2605bproject\build-impl.xml:721: The 模块尚未部署。有关详细信息,请参阅服务器日志。建 失败(总时间:16 秒(

"购物车"是一个来自不同项目的类,我很久以前在同一位置的一个名为 Ex2605 的目录中有一个。但是该目录早已不复存在,它已从 Netbeans 项目列表中删除,并且当前在 Ex2605 文件夹中的任何文件中的任何地方都没有对 ShoppingCart 类的引用。因此,Netbeans 显然正在寻找名为 LShoppingCart 的东西这一事实告诉我,它在其他地方维护了我以前在 Ex2605 文件夹中拥有的历史记录,显然我需要清除该历史记录,但不知道如何清除。

如果我使用任何未命名为 Ex2605 的目录尝试上述所有操作,它可以正常工作。

有什么想法吗?显然我可以解决它,但它仍然让我恼火。

Netbeans 有一个编译缓存,有时会导致问题。您可以删除编译缓存,看看是否有帮助。

以下是回答我问题的步骤:

  1. 停止服务器

  2. 清理项目

  3. 停止 NetBeans

  4. 删除 %HOME%.netbeans\6.9\var\cache

  5. 启动 NetBeans

最新更新