【问题标题】:Glassfish logs error - java.lang.ClassNotFoundExceptionGlassfish 记录错误 - java.lang.ClassNotFoundException
【发布时间】:2014-09-06 00:51:49
【问题描述】:

我正在制作一个简单的 java ee 应用程序,部署在本地 glassfish 服务器上,在 eclipse kepler 中。我只有一个称为控制器 servlet 的 servlet。我认为我的应用程序一切正常,直到刚刚检查了 eclipse 中的控制台窗口并看到我的 glassfish 服务器出现异常。我有一个 servlet 的 java 文件,这个代码的类文件必须在某个地方,因为我点击了构建项目。那么,为什么找不到类文件呢?该错误没有给我更多有用的信息。

请帮我找出错误的原因并修复它。

java.lang.ClassNotFoundException: java.controller.ControllerServlet
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1761)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1611)
    at com.sun.enterprise.deployment.annotation.impl.ModuleScanner.getElements(ModuleScanner.java:297)
    at com.sun.enterprise.deployment.archivist.Archivist.processAnnotations(Archivist.java:585)
    at com.sun.enterprise.deployment.archivist.Archivist.readAnnotations(Archivist.java:462)
    at com.sun.enterprise.deployment.archivist.Archivist.readAnnotations(Archivist.java:446)

    .........MUCH MORE....

【问题讨论】:

  • 您是否在名为java.controller 的包中创建了ControllerServlet?
  • @Luiggi Mendoza - 是的,我做到了。该 java 文件位于 My web project > Java resources > src > java.controller pakcage 下。
  • 假设您已将应用程序部署为 WAR,它的结构是什么?你能把这个加到原帖里吗?
  • 你不应该有任何以java开头的包。
  • @LuiggiMendoza - 哇。你说的对。为什么这个名字会引起问题?谢谢。

标签: java eclipse jakarta-ee servlets glassfish


【解决方案1】:

您不应拥有任何名称以java 开头的包。将 java.controller 包的名称替换为 myapp.controller 之类的其他名称,并对项目中具有相同模式的其他包执行此操作。之后,重新部署应用程序。

上述问题的确切解释:Java Language Specification. Chapter 6. Names. 6.1. Declarations.

仅供本地使用的包名称应该有一个以小写字母开头的第一个标识符,但第一个标识符特别不应该是标识符 java; 以标识符 java 开头的包名称是保留给Java SE平台的包。

【讨论】:

  • 如果包的名称是这里的问题,我会很惊讶,尽管我同意你不应该有自己的以 'java' 开头的包
  • 是的,这行得通。很奇怪。我想知道为什么会出现这个错误。实际上,我看到了一个示例项目文件夹,其中包含文件夹 java > controller。 servlet java 代码在其中。所以,我假设我必须创建一个名为 java.controller 的包来复制这个结构。有没有其他方法可以复制结构,而不是创建包。谢谢。
  • @james 你可能会感到困惑。 Java 是主要源文件夹的通用名称,通常用于 maven 项目。然后,包中带有控制器。
  • @Luiggi Mendoza - 所以,我在名为“src”的 src 文件夹下创建一个名为 java 的新 src 文件夹,然后在 java 中创建一个 package 控制器?
  • @james 请阅读帖子。它包含您的问题的解决方案。
猜你喜欢
  • 2013-07-23
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 2015-03-25
  • 2015-08-15
  • 1970-01-01
相关资源
最近更新 更多