2013-08-27 247 views
1

我使用Spring 3与Hibernate春天Hibernate集成:让空在SessionFactory的

但是,当我试图挽救在数据库中的数据它给我的NullPointerException

<pre> 
java.lang.NullPointerException 
    com.ivalix.services.LoginServiceImpl.add(LoginServiceImpl.java:27) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
</pre> 

我的调度员servlet.xml中码是:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

    <context:component-scan base-package="com.ivalix.controller" /> 

    <context:property-placeholder location="classpath:jdbc.properties" /> 

    <tx:annotation-driven transaction-manager="hibernatetransactionManager" /> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.ResourceBundleViewResolver" 
     p:basename="views" /> 

    <bean id="loginService" class="com.ivalix.services.LoginServiceImpl" /> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close" p:driverClassName="${jdbc.driver}" 
     p:url="${jdbc.url}" p:username="${jdbc.user}" 
     p:password="${jdbc.password}" p:maxActive="0" p:initialSize="50" /> 



    <bean id="sessionFactory" 

     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 

     <property name="dataSource" ref="dataSource" /> 

     <property name="annotatedClasses"> 

      <list> 

       <value>com.ivalix.dto.User</value> 

      </list> 

     </property> 

     <property name="hibernateProperties"> 

      <props> 

       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 

       <prop key="hibernate.show_sql">${jdbc.show_sql}</prop> 

      </props> 

     </property> 

    </bean> 

    <bean id="hibernatetransactionManager" 

     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 

     <property name="sessionFactory" ref="sessionFactory" /> 

    </bean> 

    <bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" 
     p:definitions="/WEB-INF/tiles-defs.xml" /> 

    <bean id="userValidator" class="com.ivalix.validator.UserValidator" /> 
    <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource" 
     p:basename="validation" /> 
</beans> 

控制器文件是:

<pre> 

package com.ivalix.controller; 


import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.validation.BindingResult; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.SessionAttributes; 

import com.ivalix.services.LoginService; 
import com.ivalix.validator.UserValidator; 
import com.ivalix.dto.User; 

@Controller 
@RequestMapping("/login.htm") 
@SessionAttributes("user") 
public class LoginController { 

    private LoginService loginService; 
    private UserValidator userValidator; 

    @Autowired 
    public void setUserService(LoginService loginService, UserValidator userValidator) { 
     this.loginService = loginService; 
     this.userValidator = userValidator; 
    } 


    @RequestMapping(method = RequestMethod.GET) 
    public String showUserForm(ModelMap model) { 
     User user = new User(); 
     model.addAttribute("user", user); 
     return "loginForm"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String onSubmit(@ModelAttribute(value="user") User user,BindingResult result) { 
     userValidator.validate(user, result);  
     if (result.hasErrors()) { 
      return "loginForm"; 
     } else { 
      loginService.add(user); 
      return "redirectLoginSuccess"; 
     } 
    } 
} 

</pre> 

ServiceImpl是:

<pre> 
package com.ivalix.services; 

import java.util.ArrayList; 
import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.transaction.annotation.Propagation; 
import org.springframework.transaction.annotation.Transactional; 

import com.ivalix.dao.UserDao; 
import com.ivalix.dao.impl.UserDaoImpl; 
import com.ivalix.dto.User; 

@Transactional 
public class LoginServiceImpl implements LoginService { 

    @Autowired 
    private static UserDao userDao; 

    LoginServiceImpl() { 
     //userDao = UserDaoImpl.getInstance(); 
    } 


    @Transactional(propagation = Propagation.REQUIRED, readOnly = false) 
    public void add(User user) { 
     userDao.saveUser(user); 
    } 

} 


</pre> 

DaoImpl是:

<pre> 
package com.ivalix.dao.impl; 

import java.util.List; 

import org.hibernate.SessionFactory; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import com.ivalix.dao.UserDao; 
import com.ivalix.dto.User; 

@Repository("userDao") 
public class UserDaoImpl implements UserDao { 

    @Autowired 
    private SessionFactory sessionFactory; 

    private static UserDao userDao; 

    public static UserDao getInstance() { 
     if (userDao != null) 
      return userDao; 
     else { 
      userDao = new UserDaoImpl(); 
      return userDao; 
     } 
    } 


    // To Save the user detail 
    public void saveUser(User user) { 

     sessionFactory.getCurrentSession().saveOrUpdate(user); 
    } 

    // To get list of all user 
    @SuppressWarnings("unchecked") 
    public List<User> listUsers() {  
     return (List<User>) sessionFactory.getCurrentSession().createCriteria(User.class).list(); 
    } 

} 
</pre> 

UserValidator豆:

package com.ivalix.validator; 

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

import org.springframework.validation.Errors; 
import org.springframework.validation.ValidationUtils; 
import org.springframework.validation.Validator; 

import com.ivalix.dto.User; 


public class UserValidator implements Validator { 

    @Override 
    public boolean supports(Class<?> clazz) { 
     return User.class.isAssignableFrom(clazz); 
    } 

    @Override 
    public void validate(Object target, Errors errors) { 
     User user = (User) target; 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "email", "email.required"); 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "password.required"); 
     if (!isValidEmailAddress(user.getEmail())) errors.rejectValue("email", 
       "email.invalid"); 
    } 

    public boolean isValidEmailAddress(String emailAddress){ 
     String expression="^[\\w\\-]([\\.\\w])+[\\w][email protected]([\\w\\-]+\\.)+[A-Z]{2,4}$"; 
     CharSequence inputStr = emailAddress; 
     Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE); 
     Matcher matcher = pattern.matcher(inputStr); 
     return matcher.matches(); 
    } 
} 

罐子的名单我使用:

</pre> 

- antlr-2.7.6.jar 
- aopalliance.jar 
- appserv-jstl.jar 
- asm-1.5.3.jar 
- asm-attrs-1.5.3.jar 
- c3p0-0.9.1.jar 
- cglib-2.1_3.jar 
- cglib-nodep-2.1_3.jar 
- commons-beanutils-1.8.3.jar 
- commons-codec-1.3.jar 
- commons-collections-3.2.1.jar 
- commons-dbcp-1.4.jar 
- commons-digester-2.1.jar 
- commons-fileupload-1.2.2.jar 
- commons-io-1.2.jar 
- commons-lang-2.6.jar 
- commons-logging-1.1.1.jar 
- commons-pool-1.5.5.jar 
- displaytag-1.2.jar 
- displaytag-export-poi-1.2.jar 
- displaytag-portlet-1.2.jar 
- dom4j-1.6.1.jar 
- ejb3-persistence-1.0.1.GA.jar 
- hibernate-3.2.6.ga.jar 
- hibernate-annotations-3.4.0.GA.jar 
- hibernate-commons-annotations-3.1.0.GA.jar 
- hibernate-core-3.3.2.GA.jar 
- javassist-3.12.0.GA.jar 
- jstl-1.2.jar 
- jta-1.1.jar 
- mysql-connector-java-5.1.6.jar 
- org.apache.servicemix.bundles.commons-io-1.3.2_1.jar 
- org.springframework.aop-3.0.5.RELEASE.jar 
- org.springframework.asm-3.0.5.RELEASE.jar 
- org.springframework.aspects-3.0.5.RELEASE.jar 
- org.springframework.beans-3.0.5.RELEASE.jar 
- org.springframework.context.support-3.0.5.RELEASE.jar 
- org.springframework.context-3.0.5.RELEASE.jar 
- org.springframework.core-3.0.5.RELEASE.jar 
- org.springframework.expression-3.0.5.RELEASE.jar 
- org.springframework.instrument.tomcat-3.0.5.RELEASE.jar 
- org.springframework.instrument-3.0.5.RELEASE.jar 
- org.springframework.jdbc-3.0.5.RELEASE.jar 
- org.springframework.jms-3.0.5.RELEASE.jar 
- org.springframework.orm-3.0.5.RELEASE.jar 
- org.springframework.oxm-3.0.5.RELEASE.jar 
- org.springframework.test-3.0.5.RELEASE.jar 
- org.springframework.transaction-3.0.5.RELEASE.jar 
- org.springframework.web.portlet-3.0.5.RELEASE.jar 
- org.springframework.web.servlet-3.0.5.RELEASE.jar 
- org.springframework.web.struts-3.0.5.RELEASE.jar 
- org.springframework.web-3.0.5.RELEASE.jar 
- servlet-api.jar 
- slf4j-api-1.6.1.jar 
- spring-modules-validation.jar 
- spring-security-acl-3.0.5.RELEASE.jar 
- spring-security-config-3.0.5.RELEASE.jar 
- spring-security-core-3.0.5.RELEASE.jar 
- spring-security-taglibs-3.0.5.RELEASE.jar 
- spring-security-web-3.0.5.RELEASE.jar 
- tiles-api-2.2.2.jar 
- tiles-core-2.2.2.jar 
- tiles-jsp-2.2.2.jar 
- tiles-servlet-2.2.2.jar 
- tiles-template-2.2.2.jar 
- urlrewrite-2.6.0.jar 
- validation-api-1.0.0.GA.jar 
- xalan.jar 
- xercesImpl-2.9.1.jar 
- xml-apis.jar 

</pre> 

回答

3

感谢所有朋友,

问题是解决了现在,这是由于多次更改描述如下

在调度员servlet.xml中

变化

<context:component-scan base-package="com.ivalix.controller" /> 

<context:component-scan base-package="com.ivalix" />  

并添加条目userDao因为我使用userDao作为@Autowired在LoginServiceImpl

<bean id="userDao" class="com.ivalix.dao.impl.UserDaoImpl" /> 

在的LoginController删除与@Autowired注解setUserService()由ORID

所建议

在UserDAOImpl中除去getInstance()方法,因为现在我使用注解创建useDao参考

一旦再次感谢所有提示帮助我。非常感谢:)

1

UserDao为空并且不是会话工厂

更改context:component-scan base-package="com.ivalix.controllercontext:component-scan base-package="com.ivalix

现在,你只是扫描/注入控制器包。这就是为什么你的DAO没有被注入到你的服务中,因此是空的。

而且从春天配置中删除bean id="loginService"bean id="userValidator"

EDIT

此后,变化

private LoginService loginService; 
private UserValidator userValidator; 

@Autowired 
public void setUserService(LoginService loginService, UserValidator userValidator) { 
    this.loginService = loginService; 
    this.userValidator = userValidator; 
} 

@Autowired 
private LoginService loginService; 

@Autowired 
private UserValidator userValidator; 

消除第二个例外(请移除setUserService方法或备选地它重构为两个单独的设置方法)

+0

谢谢,但仍然得到错误 org.springframework.beans.factory.BeanCreationException:错误创建名为“的LoginController”豆:自动装配依赖注入失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配方法:public void com.ivalix.controller.LoginController.setUserService(com.ivalix.services.LoginService,com.ivalix.validator.UserValidator); –

+0

编辑我的回应上述处理第二异常 –

+0

ORID仍然得到同样的错误 –

1

@Orid

更改的文件如下所示。运行:(

调度员的servlet下面server.Full堆栈跟踪时给出仍然得到错误。XML

<context:component-scan base-package="com.ivalix" /> 

    <context:property-placeholder location="classpath:jdbc.properties" /> 

    <tx:annotation-driven transaction-manager="hibernatetransactionManager" /> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.ResourceBundleViewResolver" 
     p:basename="views" /> 

    <!-- <bean id="loginService" class="com.ivalix.services.LoginServiceImpl" /> --> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close" p:driverClassName="${jdbc.driver}" 
     p:url="${jdbc.url}" p:username="${jdbc.user}" 
     p:password="${jdbc.password}" p:maxActive="0" p:initialSize="50" /> 



    <bean id="sessionFactory" 

     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 

     <property name="dataSource" ref="dataSource" /> 

     <property name="annotatedClasses"> 

      <list> 

       <value>com.ivalix.dto.User</value> 

      </list> 

     </property> 

     <property name="hibernateProperties"> 

      <props> 

       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 

       <prop key="hibernate.show_sql">${jdbc.show_sql}</prop> 

      </props> 

     </property> 

    </bean> 

    <bean id="hibernatetransactionManager" 

     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 

     <property name="sessionFactory" ref="sessionFactory" /> 

    </bean> 

    <bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" 
     p:definitions="/WEB-INF/tiles-defs.xml" /> 

    <!-- <bean id="userValidator" class="com.ivalix.validator.UserValidator" /> --> 
    <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource" 
     p:basename="validation" /> 

的LoginController

package com.ivalix.controller; 



@Controller 
@RequestMapping("/login.htm") 
@SessionAttributes("user") 
public class LoginController { 

    @Autowired 
    private LoginService loginService; 
    @Autowired 
    private UserValidator userValidator; 


    @RequestMapping(method = RequestMethod.GET) 
    public String showUserForm(ModelMap model) { 
     User user = new User(); 
     model.addAttribute("user", user); 
     return "loginForm"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String onSubmit(@ModelAttribute(value="user") User user,BindingResult result) { 
     userValidator.validate(user, result);  
     if (result.hasErrors()) { 
      return "loginForm"; 
     } else { 
      loginService.add(user); 
      return "redirectLoginSuccess"; 
     } 
    } 
} 

堆栈跟踪

Aug 28, 2013 8:36:14 AM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 
INFO: Destroying singletons in org.s[email protected]946d22: defining beans [loginController,loginSuccessController,userDao,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,viewResolver,dataSource,sessionFactory,hibernatetransactionManager,tilesConfigurer,messageSource]; root of factory hierarchy 
Aug 28, 2013 8:36:14 AM org.springframework.web.servlet.FrameworkServlet initServletBean 
SEVERE: Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.ivalix.services.LoginService com.ivalix.controller.LoginController.loginService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.ivalix.services.LoginService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) 
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339) 
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) 
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5001) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5289) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:842) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958) 
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.ivalix.services.LoginService com.ivalix.controller.LoginController.loginService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.ivalix.services.LoginService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282) 
    ... 33 more 
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.ivalix.services.LoginService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474) 
    ... 35 more 
Aug 28, 2013 8:36:14 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive E:\sw\apache-tomcat-7.0.23\webapps\JavaPlanner.war 
Aug 28, 2013 8:36:14 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive E:\sw\apache-tomcat-7.0.23\webapps\ROOT.war 
Aug 28, 2013 8:36:16 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\docs 
Aug 28, 2013 8:36:16 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\examples 
Aug 28, 2013 8:36:17 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\home 
Aug 28, 2013 8:36:17 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\host-manager 
Aug 28, 2013 8:36:17 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\images 
Aug 28, 2013 8:36:17 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory E:\sw\apache-tomcat-7.0.23\webapps\manager 
Aug 28, 2013 8:36:17 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Aug 28, 2013 8:36:17 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8443"] 
Aug 28, 2013 8:36:17 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Aug 28, 2013 8:36:17 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 4487 ms 
0

似乎有多个问题

更改COMPONE NT扫描到包括DAO和服务包与@Service注解

<context:component-scan base-package="com.ivalix" /> 

标注服务

@Service 
@Transactional 
public class LoginServiceImpl implements LoginService { 

UserDao取出getInstance()方法,因为它是越野车,因为它不是在DAO实例设置sessionFactory

+0

感谢阿伦,但仍然得到错误 \t厂.BeanCreationException:创建名为'loginController'的bean时出错:注入自动装配依赖项失败;嵌套的异常是工厂。BeanCreationException:无法自动装入字段:private validator.UserValidator controller.LoginController.userValidator;嵌套的异常是beans.factory.NoSuchBeanDefinitionException:找不到匹配[com.ivalix.validator.UserValidator]类型的匹配bean用于依赖性:预计至少有1个bean –

+0

@AnupamSharma其中是验证器bean?我没有看到一个 –

+0

现在我在我的quesion中添加了UserValidator bean,您可以检查那里。 –

相关问题