Исключение неудовлетворенной зависимости: ошибка при создании bean-компонента с именемJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Исключение неудовлетворенной зависимости: ошибка при создании bean-компонента с именем

Сообщение Anonymous »

Я новичок в Spring, я только запускаю программу Spring MVC CRUD, но снова и снова сталкиваюсь с одними и теми же ошибками после многих попыток.
Это первое исключение, которое печатает статус HTTP 500 — внутренняя ошибка сервера.
Состояние HTTP 500 — внутренняя ошибка сервера
javax.servlet.ServletException: Servlet.init() для сервлета [диспетчер] выдал исключение
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Неизвестный источник)
Исключение неудовлетворенной зависимости
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'studentDao' defined in file [C:\Users\MOHIT SINGH\Documents\workspace-spring-tool-suite-4-4.6.2.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\STUDENT-SPRING-MVC\WEB-INF\classes\com\spring\student\dao\StudentDaoImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type [java.lang.Class] found for dependency [java.lang.Class]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [java.lang.Class] found for dependency [java.lang.Class]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:540)
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

NoSuchBeanDefinitionException
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [java.lang.Class] found for dependency [java.lang.Class]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: { } < b r / > o r g . s p r i n g f r a m e w o r k . b e a n s . f a c t o r y . s u p p o r t.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1398)
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1051)
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1018)
org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:834)
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:540)
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

Код

4.0.0
com.java.spring
STUDENT-SPRING-MVC
war
0.0.1-SNAPSHOT
STUDENT-SPRING-MVC Maven Webapp
http://maven.apache.org

4.3.0.RELEASE
4.3.6.Final
5.1.31
2.3




org.springframework
spring-core
${springframework.version}


org.springframework
spring-web
${springframework.version}


org.springframework
spring-webmvc
${springframework.version}


org.springframework
spring-tx
${springframework.version}


org.springframework
spring-orm
${springframework.version}




org.hibernate
hibernate-core
${hibernate.version}




javax.validation
validation-api
1.1.0.Final


org.hibernate
hibernate-validator
5.1.3.Final




mysql
mysql-connector-java
5.1.26




joda-time
joda-time
${joda-time.version}




org.jadira.usertype
usertype.core
3.0.0.CR1




javax.servlet
javax.servlet-api
3.1.0



javax.servlet.jsp
javax.servlet.jsp-api
2.3.1


javax.servlet
jstl
1.2




org.springframework
spring-test
${springframework.version}
test


org.testng
testng
7.5
test



STUDENT-SPRING-MVC


maven-compiler-plugin
3.5.1

1.7
1.7



maven-war-plugin
2.6

false






Конфигурация
package com.spring.student.configuration;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan("com.spring.student")
public class MyWebConfig {

@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");

return viewResolver;
}

@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
}

ServletInitilizer
package com.spring.student.configuration;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class[] getRootConfigClasses() {

return null;
}

@Override
protected Class[] getServletConfigClasses() {

return new Class[] {MyWebConfig.class};
}

@Override
protected String[] getServletMappings() {

return new String[] { "/" };
}

}

HibernateConfiguration
package com.spring.student.configuration;

import java.util.Properties;

import javax.sql.DataSource;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.spring.student.configuration" })
@PropertySource(value = { "classpath:application.properties" })
public class MyHibernateConfig {

@Autowired
private Environment environment;

@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "com.spring.student.model" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}

@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
return dataSource;
}

public Properties hibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show.sql"));
properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
return properties;
}

@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(s);
return txManager;
}
}

Дао
package com.spring.student.dao;

import java.io.Serializable;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import java.lang.reflect.ParameterizedType;
import org.springframework.beans.factory.annotation.Autowired;

public abstract class AbstStudentDao {

private final Class persistentClass;

@SuppressWarnings("unchecked")
public AbstStudentDao(Class persistentClass) {
super();
this.persistentClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass())
.getActualTypeArguments()[1];
}

@Autowired
private SessionFactory sessionFactory;

protected Session getSession() {
return sessionFactory.getCurrentSession();
}

@SuppressWarnings("unchecked")
public T getByKey(PK key) {
return (T) getSession().get(persistentClass, key);
}

public void persist(T entity) {
getSession().persist(entity);
}

public void saveOrUpdate(T entity) {
getSession().saveOrUpdate(entity);
}

public void delete(T entity) {
getSession().delete(entity);
}

protected Criteria createEntityCriteria() {
return getSession().createCriteria(persistentClass);
}
}

DaoImpl

package com.spring.student.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.spring.student.model.Student;

@Repository("studentDao")
public class StudentDaoImpl extends AbstStudentDao implements StudentDao {

public StudentDaoImpl(Class persistentClass) {
super(persistentClass);

}

public void saveOrUpdate(Student student) {
super.saveOrUpdate(student);
}

@Override
public Student findById(int id) {

return getByKey(id);
}

@Override
public void saveStudent(Student student) {
persist(student);

}

@Override
public void deleteStudentByCode(String code) {
Query query = getSession().createQuery("delete from student where code = :code");
query.setParameter("code", code);
query.executeUpdate();

}

@SuppressWarnings("unchecked")
@Override
public List findAllStudents() {
Criteria criteria = createEntityCriteria();
return (List) criteria.list();

}

@Override
public Student findStudentByCode(String code) {

Criteria criteria = createEntityCriteria();
criteria.add(Restrictions.eq("code", code));
return (Student) criteria.uniqueResult();
}

}

ServiceImple

package com.spring.student.service;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.spring.student.dao.StudentDao;
import com.spring.student.model.Student;

@Service("studentService")
@Transactional
public class StudentServiceImpl implements StudentService {

private StudentDao studentDao;

@Override
public Student findById(int Id) {

return studentDao.findById(Id);
}

@Override
public void saveStudent(Student student) {

studentDao.saveStudent(student);

}

@Override
public void updateStudent(Student student) {

Student entity = studentDao.findById(student.getId());
if (entity != null) {
entity.setName(student.getName());
entity.setEnteringDate(student.getEnteringDate());
entity.setNationality(student.getNationality());
entity.setCode(student.getCode());
}

}

@Override
public List findAllStudent() {

return studentDao.findAllStudents();
}

@Override
public Student findStudentByCode(String code) {

return studentDao.findStudentByCode(code);
}

@Override
public boolean isStudentCodeUnique(Integer id, String code) {
Student student = findStudentByCode(code);
return (student == null || ((id != null) && (student.getId() == id)));
}

@Override
public void deleteStudentByCode(String code) {
studentDao.deleteStudentByCode(code);

}

}

Контроллер

package com.spring.student.controller;

import java.util.Locale;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.spring.student.model.Student;
import com.spring.student.service.StudentService;

@Controller
@RequestMapping("/")
public class MyController {

@Autowired
StudentService service;

@Autowired
MessageSource messageSource;

@RequestMapping(value = { "/new" }, method = RequestMethod.GET)
public String studentList(ModelMap model) {

Student student = new Student();
model.addAttribute("student", student);
model.addAttribute("edit", false);
return "registration";
}

@RequestMapping(value = { "/new" }, method = RequestMethod.POST)
public String saveStudent(@Valid Student student, BindingResult result, ModelMap model) {
if (result.hasErrors()) {
return "registration";
}
if (!service.isStudentCodeUnique(student.getId(), student.getCode())) {
FieldError codeError = new FieldError("student", "code", messageSource.getMessage("non.unique.code",
new String[] { student.getCode() }, Locale.getDefault()));
result.addError(codeError);
return "registration";
}
service.saveStudent(student);
model.addAttribute("success", "student" + student.getName() + "Registration Successfull");
return "success";
}

@RequestMapping(value = { "/edit-{code}-student" }, method = RequestMethod.GET)
public String editStudent(@PathVariable String code, ModelMap model) {
Student student = service.findStudentByCode(code);
model.addAttribute("student", student);
model.addAttribute("edit", true);
return "registration";
}

@RequestMapping(value = { "/edit-{code}-student" }, method = RequestMethod.POST)
public String updateStudent(@Valid Student student, BindingResult result, ModelMap model,
@PathVariable String code) {
if (result.hasErrors()) {
return "registration";
}

if (!service.isStudentCodeUnique(student.getId(), student.getCode())) {
FieldError codeError = new FieldError("student", "code", messageSource.getMessage("non.unique.code",
new String[] { student.getCode() }, Locale.getDefault()));
result.addError(codeError);
return "registration";
}
service.saveStudent(student);
model.addAttribute("success", "student" + student.getName() + "Update SuccessFully Completed");
return "success";
}

@RequestMapping(value = { "/delete-{code}-student" }, method = RequestMethod.GET)
public String deleteStudent(@PathVariable String code) {
service.deleteStudentByCode(code);
return "redirect:/list";
}
}


Подробнее здесь: https://stackoverflow.com/questions/708 ... -with-name
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»