java.lang.NullPointerException
com.dao.impl.MessageDaoImpl.saveMessage(MessageDaoImpl.java:23)
com.service.impl.MessageServiceImpl.saveMessageService(MessageServiceImpl.java:28)
com.action.SaveMessageAction.execute(SaveMessageAction.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
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)
com.interceptor.IsLoginedInterceptor.intercept(IsLoginedInterceptor.java:44)
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.java:91)

解决方案 »

  1.   

    com.dao.impl.MessageDaoImpl.saveMessage(MessageDaoImpl.java:23)
    com.service.impl.MessageServiceImpl.saveMessageService(MessageServiceImpl.java:28)
    com.action.SaveMessageAction.execute(SaveMessageAction.java:68)
    贴出相关的代码看看
      

  2.   

    saveMessage 时某个值为空,好好检查下吧
      

  3.   

    java.lang.NullPointerException----很明显是空指针异常了,你应该庆幸。
    com.dao.impl.MessageDaoImpl.saveMessage(MessageDaoImpl.java:23)---DAO层实现类的大概行数也有了
    com.service.impl.MessageServiceImpl.saveMessageService(MessageServiceImpl.java:28))---service层实现类大概行数也有了
    com.action.SaveMessageAction.execute(SaveMessageAction.java:68))---Action的大概行数也有了
    ... ...
    直接看代码看不出来,就debug一下,很容易排查到问题点。
      

  4.   

    MessageDaoImpl.saveMessage(MessageDaoImpl.java:23)23行中的代码这句代码,应该是 Message这个对象中的某个属性为空了,你把里面的属性设置一个默认值看看。  比如某个String 类型的属性初始值为空字符串
      

  5.   

    package com.dao.impl;
    import java.util.Date;
    import java.util.List;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import Bean.MessageBean;
    import com.dao.MessageDao;public class MessageDaoImpl extends HibernateDaoSupport implements MessageDao { @Override
    public void createMessage(MessageBean message) {       this.getHibernateTemplate().persist(message);//利用Template保存

    }

    public void saveMessage(MessageBean message) {
    message.setMessageTime(new Date());
    this.getHibernateTemplate().save(message);
    System.out.println("留言时间:"+message.getMessageTime());

    } @SuppressWarnings("unchecked")
    public List<MessageBean> findAllMessage() {


    String hql="from MessageBean message order by message.messageID desc";


    List<MessageBean> list=this.getHibernateTemplate().find(hql);


    return list;
    } @Override
    public int getMessagesCount() {

    int count=0;

    String hql="select count(message) from MessageBean message";

    @SuppressWarnings("unchecked")
    List<MessageBean> list=this.getHibernateTemplate().find(hql);

    if(list!=null&&list.size()>0){
    count=list.size();
    }

    return count;
    } @SuppressWarnings("unchecked")
    @Override
    public MessageBean getMessage(int id) {

    MessageBean message=null;

    String hql="from MessageBean message where message.user.userID='"+id+"'";        //String sql="select * from message where userID='"+id+"'";
            
            List<MessageBean> list=this.getHibernateTemplate().find(hql);
            
           /* Session session=this.getSession();
            session.beginTransaction();
            List<MessageBean> list=session.createSQLQuery(sql).list();
            session.getTransaction().commit();
            session.close();*/
            
            if(list!=null&&list.size()>0){
             message=list.get(0);
            }
            
    return message;
    }
        
    }23行语句
    message.setMessageTime(new Date());
    有问题?
      

  6.   

    中的属性messageTime是否是日期类型的,还有new Date()引入的包是否是java.util.Date的