繁体   English   中英

监听器类不调用方法?

[英]Listener Class not invoking method?

我正在Eclipse中进行Dynamic Web Project。 一周前,单击“在服务器中运行”按钮后,整个项目已正确加载。 但是昨天,当我按下“在服务器中运行”按钮时,控制台将显示一条错误消息,指出它无法加载Servlet上下文。 服务器是Apache Tomcat 5.5,以下是控制台错误:

15 Dec, 2009 9:14:22 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Sun\SDK\jdk\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/dev/eclipse/jre/bin/client;C:/dev/eclipse/jre/bin;C:\Program Files\PC Connectivity Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files\Java\jre6/bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\CyberLink\Power2Go\;C:\Program Files\QuickTime\QTSystem\;C:\Sun\SDK\bin;;C:\Program Files\Common Files\Microsoft Shared\Windows Live
15 Dec, 2009 9:14:22 AM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
15 Dec, 2009 9:14:22 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 707 ms
15 Dec, 2009 9:14:22 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
15 Dec, 2009 9:14:22 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.28
15 Dec, 2009 9:14:22 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
15 Dec, 2009 9:14:23 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class InitMainMethodFromModel
java.lang.ClassNotFoundException: InitMainMethodFromModel
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3743)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
 at org.apache.catalina.core.StandardService.start(StandardService.java:448)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
15 Dec, 2009 9:14:23 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
15 Dec, 2009 9:14:23 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
15 Dec, 2009 9:14:23 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/BookManagementSoftwareServlet] startup failed due to previous errors
15 Dec, 2009 9:14:23 AM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
15 Dec, 2009 9:14:23 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
15 Dec, 2009 9:14:23 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/24  config=null
15 Dec, 2009 9:14:23 AM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
15 Dec, 2009 9:14:23 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 673 ms

请记住,我已经将项目备份在闪存驱动器中,然后,我尝试从头开始重新安装所有内容。 其中包括Eclipse Java EE版本,Java EE,JRE,Apache Tomcat 5.5(都尝试过.msi和.zip),并且还尝试通过在Eclipse中创建名为相同的新项目来导入项目,但是通过添加类和servlet文件右键单击该项目,然后选择创建新的类/ servlet,然后从先前工作区的类文件中复制粘贴代码。 但是我得到和以前一样的错误。

ClassNotFoundException没有提及包名称,因此意味着您已经将该类放在默认包中。 将类放在默认包中是个坏主意。 这样,来自其他程序包的类(例如Web服务器类)将无法看到/导入它(自己进行测试:在普通程序包中的类中时,请尝试从默认程序包中import一个类)。 但是,在某些情况下,可以在类加载中使用一些技巧和/或所用JVM中的错误的情况下使用此工具,但是您实际上不应依赖它,它会使您的应用程序基本上不可移植。

将类放在包中。 总是。 还要确保在web.xml的类声明中使用完整的合格类名(包括包)。

错误消息告诉您找不到类InitMainMethodFromModel 您确定包含此类的jar文件位于类路径上吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM