Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取:HTTP状态500-无法确定:Integer的类型:原因可能是什么?_Java_Mysql_Sql_Hibernate_Servlets - Fatal编程技术网

Java 获取:HTTP状态500-无法确定:Integer的类型:原因可能是什么?

Java 获取:HTTP状态500-无法确定:Integer的类型:原因可能是什么?,java,mysql,sql,hibernate,servlets,Java,Mysql,Sql,Hibernate,Servlets,尝试运行servlet时,我遇到一个异常: HTTP Status 500 - Could not determine type for: Integer, for columns: [org.hibernate.mapping.Column(playernumber)] type Exception report message Could not determine type for: Integer, for columns: [org.hibernat

尝试运行servlet时,我遇到一个异常:

   HTTP Status 500 - Could not determine type for: Integer,
     for columns: [org.hibernate.mapping.Column(playernumber)]

    type Exception report

    message Could not determine type for: Integer, for columns: [org.hibernate.mapping.Column(playernumber)]

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception

    org.hibernate.MappingException: Could not determine type for: Integer, for columns: [org.hibernate.mapping.Column(playernumber)]
        org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
        org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
        org.hibernate.mapping.Property.isValid(Property.java:185)
        org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:440)
        org.hibernate.mapping.RootClass.validate(RootClass.java:192)
        org.hibernate.cfg.Configuration.validate(Configuration.java:1102)
        org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1287)
        servlet.InsertDribble.doGet(InsertDribble.java:33)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.34 logs.

    Apache Tomcat/7.0.34
我不知道原因

Servlet:

/*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package servlet;

    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import pojo.Dribbles;

    /**
     *
     * @author user
     */
    public class InsertDribble extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    //        int playerNumber = Integer.parseInt(request.getParameter("playernumber"));
    //        int succesful = Integer.parseInt(request.getParameter("successful"));
    //        int unsuccessful = Integer.parseInt(request.getParameter("unsuccssful"));

            Configuration configuration = new Configuration().configure();
            SessionFactory sessFact = configuration.buildSessionFactory();
            Session sess = sessFact.openSession();
            Transaction trans = sess.beginTransaction();

            int playerNumber = 1;
            int succesful = 1;
            int unsuccessful = 1;
            Dribbles dr = new Dribbles();
            dr.setPlayerNumber(playerNumber);
            dr.setSuccessful(succesful);
            dr.setUnsuccessful(unsuccessful);

            sess.save(dr);
            trans.commit();
        }
    }
dribble.hbm.xml:

表的SQL查询:

CREATE TABLE dribbles(id INT,playernumber INT,successful INT,unsuccessful INT,PRIMARY KEY(id));

能否尝试将
dribble.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">
<hibernate-mapping>
  <class name="pojo.Dribbles" table="dribbles">
       <!-- include a type for the id primary key column -->
       <id column='id' name='id' type="integer">
          <generator class="increment" />
      </id>

      <property column="playernumber" name="playerNumber" type="integer"/>
      <property column="successful" name="successful" type="integer"/>
      <property column="unsuccessful" name="unsuccessful" type="integer"/>
  </class>
</hibernate-mapping>

你得到的错误是误导性的。首先,堆栈跟踪显示
httpstatus 500
,这是一个一般的服务器错误,不会告诉您任何内部信息。然后堆栈跟踪抱怨映射表列
playernumber
。但是我认为Hibernate在InsertDribble.java的第33行已经被忽略了,因为它是您首先使用它的地方

CREATE TABLE dribbles(id INT,playernumber INT,successful INT,unsuccessful INT,PRIMARY KEY(id));
<?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">
<hibernate-mapping>
  <class name="pojo.Dribbles" table="dribbles">
       <!-- include a type for the id primary key column -->
       <id column='id' name='id' type="integer">
          <generator class="increment" />
      </id>

      <property column="playernumber" name="playerNumber" type="integer"/>
      <property column="successful" name="successful" type="integer"/>
      <property column="unsuccessful" name="unsuccessful" type="integer"/>
  </class>
</hibernate-mapping>