Я новичок в Java. Я хочу, чтобы проверить мою сессию, что без exixting сессии никто не сможет войти. Я делаю это через перехватчик, и я сделал класс перехватчика, в котором, если объект сеанса имеет значение null, и если объект сеанса не равен нулю, тогда он будет вызывать действие, но actionInvocation.invoke()
не работает, и он дает исключение из нулевого указателя.actionInvocation.invoke() не вызывает действие вместо этого дает исключение нулевого указателя
public class AuthenticationInterceptor implements Interceptor{
private static final long serialVersionUID = 1L;
public AuthenticationInterceptor() {
}
@Override
public void destroy() {
}
@Override
public void init() {
}
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
String vString=null;
try{
HttpServletRequest request = (HttpServletRequest) actionInvocation.getInvocationContext().get(StrutsStatics.HTTP_REQUEST);
HttpSession session = request.getSession();
System.out.println(session.getAttribute(Constant.CURRENT_USER));
UserDTO userDTO=(UserDTO) session.getAttribute(Constant.CURRENT_USER);
if(userDTO == null){
System.out.println("userdto=null"+userDTO);
vString = "login";
}
else if(!(userDTO).equals(null)){
System.out.println("userdto!!!=null"+userDTO.getUserId());
System.out.println("test... "+actionInvocation.invoke());
vString= actionInvocation.invoke();
}
}catch (Exception e) {
e.printStackTrace();
}return vString;
}
private void addActionError(Object action, String message) {
if (action instanceof ValidationAware) {
((ValidationAware) action).addActionError(message);
}
}
}
ниже файл XML ..
<interceptors>
<interceptor name="authenticate" class="wm.com.erp.utility.AuthenticationInterceptor"/>
<interceptor-stack name="authenticateStack">
<interceptor-ref name="authenticate"/>
</interceptor-stack>
</interceptors>
<global-results>
<result name="login" type="redirect">/index.jsp</result>
</global-results>
<action name="Assignment" class="wm.com.erp.action.AssignmentAction" method="AssignmentList">
<interceptor-ref name="authenticateStack"/>
<result name="success">/Assignment.jsp</result>
<result name="input">/home.jsp</result>
</action>
Ваша помощь будет очень ценна.
Здравствуйте и добро пожаловать в StackOverflow. Всякий раз, когда вы публикуете сообщение об ошибке, которую вы получаете, вы также должны опубликовать его стек. Кроме того, вы должны попытаться отформатировать свой код таким образом, чтобы нам было легко его читать (т. Е. Удалять любые прокомментированные коды, пробелы, нерелевантный импорт и т. Д.). В противном случае нам очень сложно помочь вам. –
Добавьте «defaultStack» в свой стек перехватчиков. –
yes thecourse ..i запомнит это в следующий раз .. –