2017-02-21 22 views
0

私はwildfly 10.1.0を使用していますプロジェクトはうまく動作していますが、データベースからデータを取得して検証しようとすると、 。 データベースに接続しましたがデータの取得方法ができませんnullpointer例外を投げる

私は私のデータベースがあるのping

Caused by: java.lang.NullPointerException 
 
\t at com.revguru.crs.web.user.controller.UserLoginController.authenticate(UserLoginController.java:86) 
 
\t at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 
\t at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
 
\t at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
 
\t at java.lang.reflect.Method.invoke(Method.java:498) 
 
\t at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:181) 
 
\t at com.sun.el.parser.AstValue.invoke(AstValue.java:289) 
 
\t at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
 
\t at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
 
\t at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
 
\t at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
 
\t at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
 
\t at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
 
\t at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
 
\t ... 50 more 
 
は、それが接続されているが、それでもsecurityService.authenticate(ユーザー名、パスワード)メソッド呼び出しを持つ私のUerLoginControllerクラスは、nullポインタ例外をスローし、私を示し

UerLoginControllerクラス

import java.util.ArrayList; 
 
import java.util.Date; 
 
import java.util.Enumeration; 
 
import java.util.HashMap; 
 
import java.util.List; 
 
import java.util.Locale; 
 
import java.util.ResourceBundle; 
 
import java.util.TimeZone; 
 

 
import javax.faces.context.FacesContext; 
 
import javax.servlet.http.HttpSession; 
 

 
import com.revguru.crs.core.entity.ht.HotelDataObject; 
 
import com.revguru.crs.core.service.exception.HSDServiceException; 
 
import com.revguru.crs.core.service.sc.SecurityService; 
 
import com.revguru.crs.core.util.HSDServiceConstants; 
 
import com.revguru.crs.security.entity.FeatureDataObject; 
 
import com.revguru.crs.security.entity.HotelUserDataObject; 
 
import com.revguru.crs.security.entity.RoleDataObject; 
 
import com.revguru.crs.security.entity.UserDataObject; 
 
import com.revguru.crs.web.common.vo.CommonGlobalBean; 
 
import com.revguru.crs.web.constants.HSDWebConstants; 
 
import com.revguru.crs.web.hotel.controller.GeneralHotelController; 
 
import com.revguru.crs.web.hotel.delegate.HotelDelegate; 
 
import com.revguru.crs.web.user.delegate.UserDelegate; 
 
import com.revguru.crs.web.user.vo.Menu; 
 
import com.revguru.crs.web.user.vo.MenuItem; 
 
import com.revguru.crs.web.user.vo.UserInformation; 
 
import com.revguru.crs.web.user.vo.UserLogin; 
 
import com.revguru.crs.web.utils.Util; 
 

 
public class UserLoginController { 
 
\t 
 
\t private FacesContext facesContext = FacesContext.getCurrentInstance(); 
 
\t HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false); 
 
\t private SecurityService securityService = new 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 
 
\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 = new UserLogin(); 
 
\t \t 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 
 
\t \t if (userLogin != null) { 
 
\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 }
これは以下の行が問題となっている私のメソッド定義

public boolean authenticate(String email, String password) { 
 
\t \t log.info("Authenticating : " + email); 
 
\t \t UserDataObject user = new UserDataObject(); 
 
\t \t \t 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 }

+0

エラーが発生している行は何ですか? – mlg

+0

この行で(securityService.authenticate(username、password)){ –

答えて

0

次のとおりです。最初の行で

UserLogin userLogin = new UserLogin(); 
userLogin = (UserLogin)session.getAttribute("UserLogin"); 

、あなたがに新しいuserloginのオブジェクトへの参照を代入変数userLogin

2行目では、その参照を、セッションに存在するオブジェクト「UserLogin」への参照で置き換えます。

セッションに「UserLogin」キーの属性が含まれていない場合、結果はnullとなり、その直下の行にNullpointerExceptionが発生します。String username = userLogin.getUserName();あなたは問題があったであろう示された場所については

usernamepasswordもないと仮定するとあなたは、コードを私たちに提供していないそのnull、問題がauthenticate(String, String)内だろう、です。

+0

あなたはあなたの答えを詳しく教えてください私はそれを取得していません –

関連する問題