简体   繁体   English

Tomcat提供了org.springframework.beans.factory.CannotLoadBeanClassException:

[英]Tomcat gives org.springframework.beans.factory.CannotLoadBeanClassException:

I am working with the following setup 我正在使用以下设置

WEB-INF/classes/com/myorg/springmvctutorial/web/controller/HelloWorldController.java WEB-INF /类/ COM / MYORG / springmvctutorial /网络/控制器/ HelloWorldController.java

  package com.myorg.springmvctutorial.web.controller;
  import org.springframework.web.servlet.mvc.Controller;
  import org.springframework.web.servlet.ModelAndView;
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  import java.io.IOException;

  public class HelloWorldController implements Controller {
    protected final Log logger = LogFactory.getLog(getClass());
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse       response)
      throws ServletException, IOException {
      logger.info("Return View");
      return new ModelAndView("helloworld.jsp");
    }
  }

WEB-INF/web.xml WEB-INF / web.xml文件

  <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="true">

<servlet>
        <servlet-name>SpringMVCTutorial</servlet-name>
        <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
        <servlet-name>SpringMVCTutorial</servlet-name>
        <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
</web-app>

WEB-INF/SpringMVCTutorial-servlet.xml WEB-INF / SpringMVCTutorial-servlet.xml中

  <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="true">

<servlet>
        <servlet-name>SpringMVCTutorial</servlet-name>
        <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
        <servlet-name>SpringMVCTutorial</servlet-name>
        <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
</web-app>

However, when I start my tomcat , it cannot find the class definition of HelloWorldController. 但是,当我启动tomcat时,它找不到HelloWorldController的类定义。 Can someone spot the mistake? 有人可以发现错误吗? This is the exception I get 这是我得到的例外

  Jun 09, 2014 12:04:57 AM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring FrameworkServlet 'SpringMVCTutorial'
  Jun 09, 2014 12:04:57 AM org.apache.catalina.core.ApplicationContext log
  SEVERE: StandardWrapper.Throwable
  org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class       [com.myorg.springmvctutorial.web.controller.HelloWorldController] for bean with name '/helloworld.htm' defined in ServletContext resource [/WEB-INF/SpringMVCTutorial-servlet.xml]; nested exception is java.lang.ClassNotFoundException: com.myorg.springmvctutorial.web.controller.HelloWorldController
    at       org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1327)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:594)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1396)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:959)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:683)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1267)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1673)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
  Caused by: java.lang.ClassNotFoundException: com.myorg.springmvctutorial.web.controller.HelloWorldController
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:247)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:395)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1348)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1319)
... 29 more

  Jun 09, 2014 12:04:57 AM org.apache.catalina.core.StandardContext loadOnStartup
  SEVERE: Servlet /SpringMVC threw load() exception
  java.lang.ClassNotFoundException:       com.myorg.springmvctutorial.web.controller.HelloWorldController
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)

I have spent a lot of time debugging this. 我花了很多时间调试它。 Please help! 请帮忙!

The Bean class name it is trying to load is 尝试加载的Bean类名称是

    com.myorg.springmvctutorial.web.controller.HelloWorldController

Which matches the fully qualified name of your controller class: 与您的控制器类的完全限定名称匹配:

    com.myorg.springmvctutorial.web.controller.HelloWorldController

Yet the JVM cannot load it. 但是,JVM无法加载它。 That most likely means that the ".class" file is not in the correct place in the webapp for the classloader to find. 这很可能意味着“ .class”文件不在webapp中正确的位置,以供类加载器查找。 And then I see this: 然后我看到了:

    WEB-INF/classes/com/myorg/springmvctutorial/web/controller/HelloWorldController.java

That's a ".java" file not a ".class" file. 那是一个“ .java”文件,而不是“ .class”文件。 (What?!?) (什么?!?)

So I suspect that the problem is that you've put the source code instead of the compiled code into your webapp. 因此,我怀疑问题是您已将源代码而不是已编译的代码放入了Webapp中。 A mistake like that would certainly explain the symptoms ... 这样的错误肯定可以解释症状...

暂无
暂无

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

相关问题 org.springframework.beans.factory.CannotLoadBeanClassException - org.springframework.beans.factory.CannotLoadBeanClassException org.springframework.beans.factory.CannotLoadBeanClassException:找不到类 - org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class 异常org.springframework.beans.factory.CannotLoadBeanClassException:找不到类 - Exception org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class Spring MVC项目中的org.springframework.beans.factory.CannotLoadBeanClassException - org.springframework.beans.factory.CannotLoadBeanClassException in Spring mvc project Spring异常处理:org.springframework.beans.factory.CannotLoadBeanClassException - Spring Exception Handling : org.springframework.beans.factory.CannotLoadBeanClassException org.springframework.beans.factory.CannotLoadBeanClassException:找不到类 - org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class org.springframework.beans.factory.CannotLoadBeanClassException:找不到类[org.springframework.orm.hibernate5.HibernateTrasactionManager] - org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate5.HibernateTrasactionManager] “ org.springframework.beans.factory.CannotLoadBeanClassException:找不到类[org.springframework.jdbc.datasource - " org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.jdbc.datasource 集成jsf和spring异常:org.springframework.beans.factory.CannotLoadBeanClassException:找不到类 - integration jsf and spring Exception : org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class org.springframework.beans.factory.CannotLoadBeanClassException:找不到名为&#39;的bean的类[com.Dao.ApplicationDaoImpl] - org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.Dao.ApplicationDaoImpl] for bean with name '
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM