root cause为空指针,估计你参数传得不对。
导致对空对象的使用。
你看看
com.dyh.common.Userdel.userdel(Userdel.java:32) 
这一行的代码,凡是有“.”前面的对象都检查一下是否为空。

解决方案 »

  1.   

    Userdel第32行看看有对象为空了
      

  2.   

    com.dyh.struts.action.UserdelAction.execute(UserdelAction.java:46) !!!!
    46行是这行吧!
    userdel.userdel(); 
    仔细看看这个方法有什么错,没代码反正我们是看不出来
      

  3.   

    樓主與我的問題一樣
    我的問題見:http://topic.csdn.net/u/20080314/11/84f8d04b-d441-4eb3-975a-bcf8d2d8b2b7.html
      

  4.   

    Userdel userdel=new  Userdel(); 
    userdel.userdel(); 能告诉我 你这两句是干什么用的吗?
    看不明白啊!
      

  5.   

    不好意思  因为在Action中不可以调用 所以我尝试了下把代码放到一个专门的类里面
    Userdel就是专门的类 如下
    主要是最后一个userdel()方法package com.dyh.common;import com.dyh.hibernate.dao.MessagesDAO;
    import com.dyh.hibernate.dao.ReplyDAO;
    import com.dyh.hibernate.dao.UsersDAO;
    public class Userdel {

    private UsersDAO usersDao;
    private MessagesDAO messagesDao;
    private ReplyDAO replyDao;
    public UsersDAO getUsersDao() {
    return usersDao;
    }
    public void setUsersDao(UsersDAO usersDao) {
    this.usersDao = usersDao;
    }
    public MessagesDAO getMessagesDao() {
    return messagesDao;
    }
    public void setMessagesDao(MessagesDAO messagesDao) {
    this.messagesDao = messagesDao;
    }
    public ReplyDAO getReplyDao() {
    return replyDao;
    }
    public void setReplyDao(ReplyDAO replyDao) {
    this.replyDao = replyDao;
    }
    public void userdel(){
    usersDao.findAll();
    }
    }
      

  6.   

    FILTER是我做的一个过滤器过滤字符的 
    难道是他的原因?
      

  7.   

    Userdel.java的32行,lz指出你的Userdel.java的32行什么代码。如果我没有说错的话,应该是userdel中调用findall()方法时出错吧。
      

  8.   

    Userdel 类中在spring中有给usersDao注入吗?
      

  9.   

    回答11楼 <bean name="Userdel" class="com.dyh.common.Userdel" >
    <property name="usersDao">
    <ref bean="UsersDAO"/>
    </property>
    <property name="messagesDao">
    <ref bean="MessagesDAO"/>
    </property>
    <property name="replyDao">
    <ref bean="ReplyDAO" />
    </property>
    </bean>
      

  10.   

    我是有好几个Action都调用到了一个dao
    但是只有一个是可以调用的而别的呢 也是可以调用走dao的方法   但是当运行它里面方法的时候就报错了  而且与正常运行的Action调用的是同一个方法
      

  11.   

    你没有对那个dao进行依赖注入吧。
      

  12.   

    Userdel userdel=new  Userdel(); 
    userdel.userdel(); 
    你这样new 肯定出错。action中该成这样你试下
    /* 
     * Generated by MyEclipse Struts 
     * Template path: templates/java/JavaClass.vtl 
     */ 
    package com.dyh.struts.action; import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; 
    import org.apache.struts.action.ActionForm; 
    import org.apache.struts.action.ActionForward; 
    import org.apache.struts.action.ActionMapping; import com.dyh.common.Userdel; 
    import com.dyh.hibernate.dao.MessagesDAO; 
    import com.dyh.hibernate.dao.ReplyDAO; 
    import com.dyh.hibernate.dao.UsersDAO; /**  
     * MyEclipse Struts 
     * Creation date: 03-14-2008 
     *  
     * XDoclet definition: 
     * @struts.action validate="true" 
     */ 
    public class UserdelAction extends Action { 
    /* 
     * Generated Methods 
     */ /**  
     * Method execute 
     * @param mapping 
     * @param form 
     * @param request 
     * @param response 
     * @return ActionForward 
     */ 
    private Userdel userdel; 
    private MessagesDAO messagesDao; 
    private ReplyDAO replyDao; 
    public ActionForward execute(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response) { 
    userdel.userdel(); return null; 

    public UsersDAO getUserdel() { 
    return userdel; 

    public void setUserdel(Userdel userdel) { 
    this.userdel= userdel; 

    public MessagesDAO getMessagesDao() { 
    return messagesDao; 

    public void setMessagesDao(MessagesDAO messagesDao) { 
    this.messagesDao = messagesDao; 

    public ReplyDAO getReplyDao() { 
    return replyDao; 

    public void setReplyDao(ReplyDAO replyDao) { 
    this.replyDao = replyDao; 


    spring中相应的改成<bean name="/userdel" class="com.dyh.struts.action.UserdelAction" > 
    <property name="userdel"> 
    <ref bean="Userdel"/> 
    </property> 
    <property name="messagesDao"> 
    <ref bean="MessagesDAO"/> 
    </property> 
    <property name="replyDao"> 
    <ref bean="ReplyDAO" /> 
    </property> 
    </bean> 
      

  13.   

    你的spring的依赖注入的概念还不是很清楚啊,得补下啊
      

  14.   

    有点小误,把public UsersDAO getUserdel() { 
    return userdel; 
    } 改成public Userdel getUserdel() { 
    return userdel; 

      

  15.   

    回复楼上上的
    我原来确实如你写的那样在Action中注入的  可是不能调用
    然后我把写到一个操作类Userdel里面  将操作类注入在操作类里面调用这样也不可以配置文件我写的就是是操作类的 不是Action
    你看这样可以吗?
    这个问题我换了下所有的jar包
    已经解决了
      

  16.   

    有点不明白,希望楼主说得更清楚些,换了些什么JAR包,谢谢!!!
      

  17.   

    把工程的包全换了lib文件夹下的全换了