2017-03-01 14 views
0

獲得空指針異常,因爲不能創建豆

<?xml version="1.0" encoding="UTF-8"?> 
 
<beans xmlns="http://www.springframework.org/schema/beans" 
 
\t xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
\t xmlns:aop="http://www.springframework.org/schema/aop" 
 
\t xmlns:tx="http://www.springframework.org/schema/tx" 
 
\t default-autowire="byName" 
 
\t xmlns:oxm="http://www.springframework.org/schema/oxm" 
 
\t xmlns:mvc="http://www.springframework.org/schema/mvc" 
 
\t xsi:schemaLocation="http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-4.3.xsd 
 
\t \t http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 
 
\t \t http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
 
\t \t http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd 
 
\t \t http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> 
 
\t <bean id="userRoleDAOTarget" 
 
\t \t class="com.revguru.crs.security.dao.UserRoleDAOImpl" 
 
\t \t scope="prototype"> 
 
\t \t <property name="sessionFactory" ref="hsdSessionFactory" /> 
 
\t </bean> 
 
\t <bean id="userAuthDAOTarget" class="com.revguru.crs.security.dao.AuthenticationDAOImpl" scope="prototype"> 
 
\t \t <property name="sessionFactory" ref="hsdSessionFactory" /> 
 
\t </bean> 
 
\t <bean id="hotelUserDAOTarget" class="com.revguru.crs.security.dao.HotelUserDAOImpl" scope="prototype"> 
 
\t \t <property name="sessionFactory" ref="hsdSessionFactory" /> 
 
\t </bean> 
 
\t <bean id="userRoleDataObjprocessor" class="com.revguru.crs.security.service.UserRoleProcessor" scope="prototype"> 
 
\t \t <property name="userRoleDAO" ref="hsdSecurityObjectDAO" /> 
 
\t </bean> 
 
\t <bean id="userAuthDataObjprocessor" class="com.revguru.crs.security.service.AuthenticationProcessor" scope="prototype"> 
 
\t \t <property name="authenticationDAO" ref="hsdSecurityAuthObjectDAO" /> 
 
\t \t <property name="messages" ref="userSectionMessageSource"/> \t 
 
\t </bean> 
 
\t <bean id="hotelUserDataObjProcessor" class="com.revguru.crs.security.service.HotelUserProcessor" scope="prototype"> 
 
\t \t <property name="hotelUserDAO" ref="hsdHotelUserDAO" /> 
 
\t \t <property name="securitySectionLogger" ref="generalServiceLogger"/> 
 
\t </bean> 
 
\t <bean id="SECURITY_SERVICE" class="com.revguru.crs.core.service.sc.SecurityService" scope="prototype"> 
 
\t \t <property name="userRoleProcessor" ref="userRoleDataObjprocessor" /> 
 
\t \t <property name="userAuthProcessor" ref="userAuthDataObjprocessor" /> 
 
\t \t <property name="hotelUserProcessor" ref="hotelUserDataObjProcessor" /> 
 
\t </bean> 
 
\t <bean id="hsdSecurityObjectDAO" class="org.springframework.aop.framework.ProxyFactoryBean"> 
 
\t \t <property name="proxyInterfaces"> 
 
\t \t \t <value>com.revguru.crs.security.dao.UserRoleDAO 
 
\t \t \t </value> 
 
\t \t </property> 
 
\t \t <property name="interceptorNames"> 
 
\t \t \t <list> 
 
\t \t \t \t <value>hibernateInterceptor</value> 
 
\t \t \t \t <value>userRoleDAOTarget</value> 
 
\t \t \t </list> 
 
\t \t </property> 
 
\t </bean> 
 

 
\t <bean id="hsdSecurityAuthObjectDAO" class="org.springframework.aop.framework.ProxyFactoryBean"> 
 
\t \t <property name="proxyInterfaces"> 
 
\t \t \t <value>com.revguru.crs.security.dao.AuthenticationDAO 
 
\t \t \t </value> 
 
\t \t </property> 
 
\t \t <property name="interceptorNames"> 
 
\t \t \t <list> 
 
\t \t \t \t <value>hibernateInterceptor</value> 
 
\t \t \t \t <value>userAuthDAOTarget</value> 
 
\t \t \t </list> 
 
\t \t </property> 
 
\t </bean> 
 
\t 
 
\t <bean id="hsdHotelUserDAO" class="org.springframework.aop.framework.ProxyFactoryBean"> 
 
\t \t <property name="proxyInterfaces"> 
 
\t \t \t <value>com.revguru.crs.security.dao.HotelUserDAO 
 
\t \t \t </value> 
 
\t \t </property> 
 
\t \t <property name="interceptorNames"> 
 
\t \t \t <list> 
 
\t \t \t \t <value>hibernateInterceptor</value> 
 
\t \t \t \t <value>hotelUserDAOTarget</value> 
 
\t \t \t </list> 
 
\t \t </property> 
 
\t </bean> 
 
\t <bean id="userSectionMessageSource" 
 
\t \t class="org.springframework.context.support.ResourceBundleMessageSource" scope="prototype"> 
 
\t \t <property name="alwaysUseMessageFormat" value="true"/> 
 
\t \t <property name="basenames"> 
 
\t \t <list> 
 
\t \t \t \t <value>userauthResources/hsd_user_msg</value> \t \t \t \t 
 
\t \t \t </list> 
 
\t \t </property> 
 
\t </bean> \t 
 
</beans>

這是我的豆文件,它越來越參照hsdsessionFsctory至極的定義如下:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
 
\t \t <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
 
\t \t <property name="url" value="jdbc:mysql://127.0.0.1:3306/revguru"/> 
 
\t \t <property name="username" value="root" /> 
 
\t \t <property name="password" value="decoder" /> 
 
\t </bean> 
 
\t 
 
\t <bean id="hsdSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
 
\t \t <property name="dataSource" ref="dataSource" /> 
 
\t \t <property name="hibernateProperties">

當我運行我的項目我得到空指針異常

public class UserLoginController { 
 
\t 
 
\t private FacesContext facesContext = FacesContext.getCurrentInstance(); 
 
\t HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true); 
 
\t private SecurityService securityService; 
 
\t 
 
\t public void setSecurityService(SecurityService securityService) { 
 
\t \t this.securityService = securityService; 
 
\t } 
 
\t 
 
\t public SecurityService getSecurityService() { 
 
\t \t return this.securityService; 
 
\t } 
 
\t 
 
\t /** 
 
\t * Authenticate the User 
 
\t * @return 
 
\t */ 
 
\t public String authenticate() { 
 
\t \t if(session.getAttribute("menus") != null) { 
 
\t \t \t session.removeAttribute("menus"); 
 
\t \t } 
 
\t \t 
 
\t \t if (session.getAttribute("CommonGlobalBean") != null) { 
 
\t \t \t session.removeAttribute("CommonGlobalBean"); 
 
\t \t } 
 
\t \t 
 
\t \t CommonGlobalBean commonGlobalBean = new CommonGlobalBean(); 
 
\t \t commonGlobalBean.setTimeZone(TimeZone.getDefault().getID()); 
 

 
\t \t UserLogin userLogin =(UserLogin)session.getAttribute("UserLogin"); 
 
\t \t 
 
\t \t String username = userLogin.getUserName(); 
 
\t \t String password = userLogin.getPassword(); 
 
\t \t 
 
\t \t UserInformation userInformation = null; \t 
 
\t \t System.out.println("security serv ice is "); 
 
\t \t if(securityService==null){ 
 
\t \t \t System.out.println("security serv ice is null:"); 
 
\t \t \t securityService= new SecurityService(); 
 
\t \t } 
 
\t \t if (userLogin != null) { 
 
\t \t \t System.out.println("username is:"+username); 
 
\t \t \t System.out.println("password is:"+password); 
 
\t \t \t 
 
\t \t \t if (securityService.authenticate(username,password)) { 
 
\t \t \t \t Util.log("Get User Object by Email"); 
 
\t \t \t \t UserDataObject userDataObject = securityService.getUserObjectByEmail(userLogin.getUserName()); 
 
\t \t \t \t Util.log("User name : "+userDataObject.getUserFirstName()); 
 
\t \t \t \t userInformation = (UserInformation)session.getAttribute("UserObject"); 
 
\t \t \t \t if (userInformation != null) { 
 
\t \t \t \t \t session.removeAttribute("UserObject"); 
 
\t \t \t \t } 
 
\t \t \t \t userInformation = getUserInformation(userDataObject); 
 
\t \t \t \t session.setAttribute("UserObject", userInformation); 
 
\t \t \t \t \t \t 
 
\t \t \t \t if(!checkUserAsHotelRole(userInformation)) { 
 
\t \t \t \t \t Util.log("User does not have hotel role."); 
 
\t \t \t \t \t Util.reportError(facesContext, "login_user_not_valid_password", null); 
 
\t \t \t \t } 
 

 
\t \t \t \t HotelDataObject hotelDataObject = getAssignedHotel(userInformation); 
 
\t \t \t \t session.setAttribute("hotelDataObjectInSession", hotelDataObject); 
 
\t \t \t \t 
 
\t \t \t \t List<Menu> menus = new ArrayList<Menu>(); 
 
\t \t \t \t for (FeatureDataObject feature : userInformation.getFeatureDataObjects()) { 
 
\t \t \t \t \t if (feature.getParentFeatureId() == null && feature.getFeatureTypeId().getId().intValue() == HSDServiceConstants.MENU && feature.getShowFeature() == 1) { 
 
\t \t \t \t \t \t List<MenuItem> menuItems = getMenuItems(feature.getId(), userInformation.getFeatureDataObjects()); 
 
\t \t \t \t \t \t menus.add(new Menu(feature.getId(), feature.getFeatureName(), "", menuItems)); 
 
\t \t \t \t \t } 
 
\t \t \t \t } 
 
\t 
 
\t \t \t \t String languageCode = userLogin.getLanguageCode(); 
 
\t \t \t \t \t \t 
 
\t \t \t \t if (languageCode == null) { 
 
\t \t \t \t \t userLogin.setLanguageCode("en"); 
 
\t \t \t \t \t facesContext.getViewRoot().setLocale(Locale.ENGLISH); 
 
\t \t \t \t } else { 
 
\t \t \t \t \t if(languageCode.equals("fr")) { 
 
\t \t \t \t \t \t facesContext.getViewRoot().setLocale(Locale.FRENCH); 
 
\t \t \t \t \t } else { 
 
\t \t \t \t \t \t facesContext.getViewRoot().setLocale(Locale.ENGLISH); 
 
\t \t \t \t \t } 
 
\t \t \t \t } 
 
\t \t \t \t 
 
\t \t \t \t Util.log(":: languageCode :: " + userLogin.getLanguageCode()); 
 
\t \t \t \t 
 
\t \t \t \t session.setAttribute("menus", menus); 
 
\t \t \t \t session.setAttribute("CommonGlobalBean", commonGlobalBean); 
 
\t \t \t \t /** 
 
\t \t \t \t * get hotel general info details 
 
\t \t \t \t */ 
 
\t \t \t \t GeneralHotelController generalHotelController = new GeneralHotelController(); 
 
\t \t \t \t generalHotelController.loadGeneralInformation(); 
 
\t \t \t \t /** 
 
\t \t \t \t * return to hotel general info page 
 
\t \t \t \t */ 
 
\t \t \t \t return "generalInfo"; 
 
\t \t \t } else { 
 
\t \t \t \t Util.log("Invalid User."); 
 
\t \t \t \t Util.reportError(facesContext, "login_user_not_valid_password", null); 
 
\t \t \t } 
 
\t \t } 
 
\t \t return ""; 
 
\t }

它調用另一個方法,以班爲遵循

public boolean authenticate(String email, String password) { \t \t 
 
\t \t log.info("Authenticating : " + email); 
 
\t \t UserDataObject user = getUserObjectByEmail(email); 
 
\t \t if (user == null) { 
 
\t \t \t log.info("User does not exist for email id :" + email); 
 
\t \t \t return false; 
 
\t \t } 
 
\t \t return checkPassword(password, user.getPassword()); 
 
\t }

當我在春天探險家看到它讓我看到豆裁判是未知

這是我的堆棧跟蹤

javax.servlet.ServletException: java.lang.NullPointerException 
 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) 
 
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) 
 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357) 
 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 
 
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 
 
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
 
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
 
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
 
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
 
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
 
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
 
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
 
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
 
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
 
io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
 
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
 
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
 
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) 
 
io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) 
 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) 
 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) 
 
io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) 
 
io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
 
io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
 
io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
 
io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
 
io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
 
io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
 
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) 
 
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
 
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) 
 
io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
 
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) 
 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
 
java.lang.Thread.run(Thread.java:745)

什麼是紅色標記在我的春季探險

enter image description here

,而其他人沒有它

+0

您能不能告訴你的錯誤代碼? –

+0

表示哪個錯誤代碼 –

+0

我在這一行得到了空指針異常if(securityService.authenticate(username,password)) –

回答

0

UserLoginController不在XML中配置爲一個bean(至少不是在你發佈的XML中),th因此,Spring對此一無所知,並且你沒有注射。

嘗試添加這個(全包,當然):

<bean id="loginController" class="com.revguru.crs.security.dao.AuthenticationDAOImpl" scope="prototype"> 
     <property name="securityService" ref="SECURITY_SERVICE" /> 
</bean>