Java 找不到名为';的bean的类[food.bill.dao.FoodDaoImpl];foodDAO';在ServletContext资源[/WEB-INF/applicationContext.xml]中定义;
我正在学习Spring,但遇到了一个错误。Spring无法在bean中找到定义的类:Java 找不到名为';的bean的类[food.bill.dao.FoodDaoImpl];foodDAO';在ServletContext资源[/WEB-INF/applicationContext.xml]中定义;,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,我正在学习Spring,但遇到了一个错误。Spring无法在bean中找到定义的类: 31-Mar-2018 20:12:44.049 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed org.springframework.beans.factory.Can
31-Mar-2018 20:12:44.049 SEVERE [RMI TCP Connection(3)-127.0.0.1]
org.springframework.web.context.ContextLoader.initWebApplicationContext
Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [food.bill.dao.FoodDaoImpl] for bean with name 'foodDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: food.bill.dao.FoodDaoImpl
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1385)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:641)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:609)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1484)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1007)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:741)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4753)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5215)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1736)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:482)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: food.bill.dao.FoodDaoImpl
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:401)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1432)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1377)
... 55 more
这是我的applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<bean id="foodDAO" class="food.bill.dao.FoodDaoImpl"/>
<bean id="foodService" class="food.bill.service.FoodServiceImpl">
<property name="foodDao" ref="foodDAO"/>
</bean>
</beans>
FoodDaoImpl:
package food.bill.dao;
import food.bill.model.FoodItem;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.util.List;
public class FoodDaoImpl implements FoodDao {
private static final Logger log = LogManager.getLogger(FoodDaoImpl.class);
@PersistenceContext
EntityManager em;
public List<FoodItem> getMenu() {
List<FoodItem> foodMenu = null;
try {
Query query = em.createNamedQuery("FoodItem.getMenu");
foodMenu = (List<FoodItem>) query.getResultList();
return foodMenu;
}catch (Exception e){
log.info("Error in getting Menu");
}
return foodMenu;
}
public void createOrder() {
}
}
package food.bill.dao;
进口食品.bill.model.FoodItem;
导入org.apache.logging.log4j.LogManager;
导入org.apache.logging.log4j.Logger;
导入org.springframework.stereotype.Component;
导入javax.persistence.EntityManager;
导入javax.persistence.PersistenceContext;
导入javax.persistence.Query;
导入java.util.List;
公共类FoodDaoImpl实现FoodDao{
私有静态最终记录器log=LogManager.getLogger(FoodDaoImpl.class);
@持久上下文
实体管理器;
公共列表getMenu(){
List foodmens=null;
试一试{
Query Query=em.createNamedQuery(“FoodItem.getMenu”);
foodMenu=(List)query.getResultList();
返回食物菜单;
}捕获(例外e){
log.info(“获取菜单时出错”);
}
返回食物菜单;
}
公共秩序{
}
}
FoodServiceImpl:
package food.bill.service;
import food.bill.dao.FoodDao;
import food.bill.model.FoodItem;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class FoodServiceImpl implements FoodService {
private FoodDao foodDao;
public void setFoodDao(FoodDao foodDao) {
this.foodDao = foodDao;
}
public List<FoodItem> getMenu() {
return this.foodDao.getMenu();
}
}
package food.bill.service;
进口食品.bill.dao.FoodDao;
进口食品.bill.model.FoodItem;
导入org.springframework.stereotype.Service;
导入java.util.List;
@服务
公共类FoodServiceImpl实现FoodService{
私人福多福多;
公共void setFoodDao(FoodDao FoodDao){
this.foodDao=foodDao;
}
公共列表getMenu(){
返回这个.foodDao.getMenu();
}
}
我已经检查了输出文件夹,所有文件都已更新。尝试搜索了几个小时,但没有得到任何结果。任何帮助都将不胜感激。提前谢谢
org.springframework.beans.factory.CannotLoadBeanClasseException:无法
为名为“foodDAO”的bean查找类[food.bill.dao.FoodDaoImpl]
在ServletContext资源[/WEB-INF/applicationContext.xml]中定义;
嵌套异常为java.lang.ClassNotFoundException:
food.bill.dao.FoodDaoImpl
简单地说,Spring试图在您定义的类路径中找到类food.bill.dao.FoodDaoImpl
的.class
文件,但没有找到它
所以,请首先检查food.bill.dao.FoodDaoImpl
文件是否真的编译为.class文件,以及它在输出文件目录中的位置
org.springframework.beans.factory.CannotLoadBeanClasseException:无法
为名为“foodDAO”的bean查找类[food.bill.dao.FoodDaoImpl]
在ServletContext资源[/WEB-INF/applicationContext.xml]中定义;
嵌套异常为java.lang.ClassNotFoundException:
food.bill.dao.FoodDaoImpl
简单地说,Spring试图在您定义的类路径中找到类food.bill.dao.FoodDaoImpl
的.class
文件,但没有找到它
因此,请首先检查
food.bill.dao.FoodDaoImpl
文件是否真的编译为.class文件,以及它在输出文件目录中的位置。需要仔细检查的几件事
如果问题仍然存在,请告诉我。有几件事需要仔细检查
让我知道问题是否仍然存在。添加
FoodServiceImpl
@lucumt code Updated的源代码添加FoodServiceImpl
@lucumt code Updated的源代码我已经多次检查了它,它显示在输出文件夹中。请使用哪个IDE(eclipse、netbeans、IntelliJ)?我使用的是IntelliJ IdeaI。我已经检查了多次,它显示在输出文件夹中。请问您使用的是哪个IDE(eclipse、netbeans、IntelliJ)?我使用的是IntelliJ Idea