我正在使用eclipse kepler在本地glassfish服务器上部署一个简单的java ee应用程序。我只有一个名为controller 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....
答案 0 :(得分:0)
您不应该拥有任何名称以java
开头的自有软件包。将java.controller
包的名称替换为myapp.controller
之类的其他名称,并使用相同的模式为项目中的其他包执行此操作。之后,重新部署应用程序。
上述问题的确切解释:Java Language Specification. Chapter 6. Names. 6.1. Declarations.
仅供本地使用的包的名称应该具有以小写字母开头的第一个标识符,但该第一个标识符不应该是以标识符{{开头的标识符
java;
包名称1}}保留用于Java SE平台的包。