type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
com.yourcompany.struts.action.CheckAction.execute(CheckAction.java:54)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.老是出现这样的毛病,具体代码由于太多所以贴不了了、、、、

解决方案 »

  1.   

    java.lang.NullPointerException 
    com.yourcompany.struts.action.CheckAction.execute(CheckAction.java:54) 空指针异常么检查54行代码吧看看是不是调用了未实例化的对象啊什么的
      

  2.   

    CheckAction 空指针,检查一下Action中的取值吧
      

  3.   

    java.lang.NullPointerException 空指针了
      

  4.   

    我用的是MYECLIPSE 6.0的,不知道你用过没?有人说可能是插件问题,不知道是不是。
    这是CheckAction里面的代码:
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.yourcompany.struts.action;import java.util.Iterator;
    import java.util.List;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 org.hibernate.Transaction;
    import com.yourcompany.struts.form.CheckForm;import dao.Customer;
    import dao.CustomerDAO;/** 
     * MyEclipse Struts
     * Creation date: 02-16-2009
     * 
     * XDoclet definition:
     * @struts.action scope="request" validate="true"
     */
    public class CheckAction extends Action 
    {
    /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) 
    {
    String name=(String)((CheckForm)form).getName();//获取表单信息
    String pass=(String)((CheckForm)form).getPassword();

    Customer c = new Customer(); //持久化类
    c.setName(name);
    c.setPassword(pass);
    CustomerDAO dao = new CustomerDAO(); 

    Transaction tx = dao.getSession().beginTransaction();
    dao.save(c);
    tx.commit();

    request.setAttribute("personbean",name);
    request.removeAttribute(mapping.getAttribute());
    return new ActionForward(mapping.getInput());
    }
    }
    由于余下代码过长,我就不一一列举。
    再列举几个XML映射文件:(检查过好多次了,没看出什么问题来)
            Customer.hbm.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="Customer" table="customer" catalog="test">
            <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="increment"></generator>
            </id>
            <property name="name" type="java.lang.String">
                <column name="NAME" length="45" />
            </property>
            <property name="birthday" type="java.util.Date">
                <column name="BIRTHDAY" length="19" />
            </property>
            <property name="registeredTime" type="java.util.Date">
                <column name="REGISTERED_TIME" length="19" />
            </property>
            <property name="password" type="java.lang.String">
                <column name="PASSWORD" length="45" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
                   hibernate.cfg.xml:<?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration><session-factory>
    <property name="connection.username">root</property>
    <property name="connection.url">
    jdbc:mysql://localhost:3306/test
    </property>
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <property name="myeclipse.connection.profile">test</property>
    <property name="connection.password">tea110</property>
    <property name="connection.driver_class">
    com.mysql.jdbc.Driver
    </property>
    <mapping resource="Customer.hbm.xml" /></session-factory></hibernate-configuration>                struts-config.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="checkForm" type="com.yourcompany.struts.form.CheckForm" />  </form-beans>  <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="check"
          input="/index.jsp"
          name="checkForm"
          path="/check"
          scope="request"
          type="com.yourcompany.struts.action.CheckAction">
          <forward name="sucess" path="/sucess.jsp" />
        </action>
      </action-mappings>
      <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    </struts-config>
      

  5.   

    Transaction tx = dao.getSession().beginTransaction(); 
    dao.save(c); 
    tx.commit(); Action里尽量不要写数据访问层的代码  上面的代码应该放在DAO里 
      

  6.   

    能否给个例子?在DAO里写逻辑?
      

  7.   

    java.lang.NullPointerException 
    com.yourcompany.struts.action.CheckAction.execute(CheckAction.java:54)Action中的某个对象为NULL没有被实例化造成的~
      

  8.   

    public static int save(Object obj) {
    int ret = CommonErr.RET_OK;
    if (obj == null)
    return CommonErr.RET_COMMON_ERR;
    if (CommonErr.RET_OK == ret) {
    org.hibernate.Session ses;
    org.hibernate.Transaction tx;
    try {
    ses = HibernateSessionFactory.currentSession();
    tx = ses.beginTransaction(); ses.save(obj); ses.flush();
    tx.commit();
    } catch (Exception e) {
    e.printStackTrace();
    ret = CommonErr.RET_DATABASE_ERR;
    } finally {
    HibernateSessionFactory.closeSession();
    }
    }
    return ret;
    }
      

  9.   

    String name=(String)((CheckForm)form).getName();//获取表单信息 
    String pass=(String)((CheckForm)form).getPassword(); 
    你怎么这样写
      

  10.   

    还是不行,这关系不太,估计真是配置问题。。你用过MyEclipse 6.0配置STRUTS+HIBERNATE吗?
      

  11.   

    推荐一个技术网站:www.bindeng.com www.gcoge.com 
      

  12.   

    String name=(String)((CheckForm)form).getName();//获取表单信息 
    String pass=(String)((CheckForm)form).getPassword(); 如果你在CheckForm 里封装了 name,password等字段  没必要强转了 
     ((CheckForm)form).getName(); 本来取得就是你表单里的信息   注意CheckForm里的字段名要和你表单里的name标签里的名字一致。 检查一下看看是否一致。LZ没有写数据访问层吧  
    Transaction tx = dao.getSession().beginTransaction(); 
    dao.save(c); 
    tx.commit(); 
    这些代码应该放在数据访问层里Action 里就调用业务层(数据访问层)  然后控制页面跳转
     
    LZ项目不大 象你这么写也没什么问题