java.lang.NullPointerException
com.action.LoginAction.execute(LoginAction.java:76)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter

解决方案 »

  1.   

    java.lang.NullPointerException
     com.action.LoginAction.execute(LoginAction.java:76)
     不是都报异常了嘛,lz不看嘛,去LoginAction这个类的第76行看看 
      

  2.   

    空指针阿
         哪个对象里面的值 是null吧
      

  3.   

    package com.action;import com.opensymphony.xwork2.Action;public class LoginAction implements Action {
    /**
     * 用户名
     */
    public String username;
    /**
     * 密码
     */
    public String password;
    /**
     * 业务逻辑封装类
     */
    public LoginCompare loc;
    /**
     * EL表达式传递的字符串
     */
    private String message;
        /**
         * 返回Jsp页面的消息
         */
    public String getMessage() {
    return message;
    } public void setMessage(String message) {
    this.message = message;
    } public String getUsername() {
    return username;
    } public void setUsername(String username) {
    this.username = username;
    } public String getPassword() {
    return password;
    } public void setPassword(String password) {
    this.password = password;
    } public LoginCompare getLoc() {
    return loc;
    } public void setLoc(LoginCompare loc) {
    this.loc = loc;
    } /*
     * 判断登录是否成功 成功返回success 失败返回error
     */
    public String execute() throws Exception {
    /**
     * 校验帐号密码 不能为空
     */
    if (username == null || username.length() == 0) {
    this.setMessage("用户名不能为空");
    return INPUT;
    }
    if (password == null || password.length() == 0) {
    this.setMessage("密码不能为空");
    return INPUT;
    }
    /**
     * 传递用户名字符串到 EL表达式
     */
    this.setMessage(username);
    (这是第73行) if (loc.logcom(username, password))
    return SUCCESS;
    return ERROR;
    }}
      

  4.   

    大哥我们struts、Hibernate、spring一起用的。
    求解释啊
      

  5.   

    if (loc.logcom(username, password))
      

  6.   

    报错的是73行吗?76行没内容啊。如果是73行的话你们那个loc是通过spring注入进action的还是自动装配的啊?如果是通过spring注入进去的话你看spring配置文件里面写了那个配置了没。
      

  7.   

    com.action.LoginAction.execute(LoginAction.java:76)        这个是不会错的, 快贴76行代码。    
      

  8.   

    你那个loc肯定没有注入  鉴定完毕 ,  你在75行  system out 一下 loc 会打印出null
      

  9.   

    注入的
    配置是不是这个啊?
    <!-- 把struts的LoginAction交给spring -->
    <bean id="log" class="com.action.LoginAction">
    <property name="loc" ref="logincom"></property>
    </bean>
      

  10.   

    if (loc.logcom(username, password))这就是76行
      

  11.   

    lz  你在if (loc.logcom(username, password)) 行上面加一行 System.out.println(loc);  看打印出什么鬼东西没
      

  12.   

    com.action.LoginCompare.logcom(LoginCompare.java:29)
     你想要的是这个吗?
      

  13.   

    那你struts.xml里面LoginAction对应的name是log不?还有就是那个ref="logincom"里面的logincom和spring里面的service对应的bean的id是一样不?
      

  14.   

    那你struts.xml里面LoginAction对应的name是log不?还有就是那个ref="logincom"里面的logincom和spring里面的service对应的bean的id是一样不?
      

  15.   

    struts的<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    <constant name="struts.objectFactory" value="spring" />
    <package name="example" extends="struts-default">
    <action name="login" class="log">
    <result name="success">/success.jsp</result>
    <result name="error">/error.jsp</result>
    <result name="input">/index.jsp</result>
    </action>
    </package>
    </struts>    spring的<?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean>
    <bean id="UsertextDAO" class="com.dao.UsertextDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <bean id="logincom" class="com.action.LoginCompare">
    <property name="dao" ref="UsertextDAO">
    </property>
    </bean>
    <!-- 把struts的LoginAction交给spring -->
    <bean id="log" class="com.action.LoginAction">
    <property name="loc" ref="logincom"></property>
    </bean>
    </beans>
      

  16.   

    <action name="login" class="log">
    明显有问题啊。。