Мой класс контроллера:
@Controller
public class UsersController
{
@Autowired
TechRequestService techrequestservices;
@RequestMapping(value="/service_request", method=RequestMethod.POST)
public @ResponseBody Map<String,Object> SaveServiceRequest(@Valid Servicerequest servicerequest,BindingResult result){
Map<String,Object> map = new HashMap<String,Object>();
Object obj=new Object();
if(result.hasErrors())
{
for (Object object : result.getAllErrors()) {
if(object instanceof FieldError) {
FieldError fieldError = (FieldError) object;
obj= (fieldError.getDefaultMessage());
}
map.put("status","400");
map.put("message",obj);
return map;
}}
techrequestservices.save_servicerequest(servicerequest);
map.put("status","200");
map.put("message","Your record have been saved successfully");
return map;
}
}
Мой класс реализации сервиса:
@Service
public class TechRequestServiceImpl implements TechRequestService{
@Autowired
TechRequestServiceDao techrequestservicedao;
public boolean save_servicerequest(Servicerequest servicerequest) {
return techrequestservicedao.save_servicerequest(servicerequest);
}
public List<Servicerequest> list() {
// TODO Auto-generated method stub
return techrequestservicedao.list();
}
}
Мой класс DaoImpl:
@Repository
@Transactional
public class TechRequestServiceDaoImpl implements TechRequestService {
@Autowired
SessionFactory session;
@Override
public boolean save_servicerequest(Servicerequest servicerequest) {
// TODO Auto-generated method stub
session.getCurrentSession().saveOrUpdate(servicerequest);
return true;
}
@Override
public List<Servicerequest> list() {
return session.getCurrentSession().createQuery("from Search_type_case").list();
}
}
Запрос приходит черезПеременные ajax и pojo получают свои значения правильно инициализированными, поскольку я подтвердил это, поместив оператор print в метод setjo из pojos.Полная трассировка стека исключительной ситуации выглядит следующим образом:
SEVERE: Exception sending context initialized event to listener instance of class
[org.springframework.web.context.ContextLoaderListener] org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем «usersController»: инъекциясбой автозависимостей;вложенным исключением является org.springframework.beans.factory.BeanCreationException: не удалось автоматически связать поле: com.servicesapi.TechRequestService com.controllers.UsersController.techrequestservices;вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем techRequestServiceImpl: не удалось внедрить зависимостей с автоматической связью;вложенное исключение - org.springframework.beans.factory.BeanCreationException: не удалось автоматически связать поле: com.daoapi.TechRequestServiceDao com.servicesimpl.TechRequestServiceImpl.techrequestservicedao;вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не найден квалифицирующий компонент типа [com.daoapi.TechRequestServiceDao] для зависимости: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат для автоматической передачи этой зависимости.Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательный = true)} в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues (AutowiredAnost.rag.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1214) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:543) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:482) в org.springframework.beans.factory.support.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.preIn.fab.pref.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:839) в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:5.conf.Conf.Ef444) по адресу org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:326) по адресу org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListenap.ina.tata.tata.g.t).listenerStart (StandardContext.java:4792) в org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5256) в org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) в org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1421) в org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1411) на java.util.concurrent.FutureTask.run (неизвестный источник) на java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) наjava.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) в
java.lang.Thread.run (неизвестный источник)