Spring 与 Hibernate - 线程“main”中的异常 java.lang.NullPointerException

2024-04-13

我正在学习 spring 与 hibernate 集成。我遇到了这个异常

Exception in thread "main" java.lang.NullPointerException
Sep 04, 2014 7:06:50 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4577357d: startup date [Thu Sep 04 19:06:50 IST 2014]; root of context hierarchy
Sep 04, 2014 7:06:50 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [app-context.xml]
Sep 04, 2014 7:06:51 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@30583b71: defining beans [dataSource,mysessionFactory,hibernateTemplate,employeeDAO]; root of factory hierarchy
.19:06:52.016 [main] INFO  org.hibernate.cfg.Environment - Hibernate 3.3.0.SP1 
.19:06:52.023 [main] INFO  org.hibernate.cfg.Environment - hibernate.properties not found 
.19:06:52.027 [main] INFO  org.hibernate.cfg.Environment - Bytecode provider name : javassist 
.19:06:52.032 [main] INFO  org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
.19:06:52.246 [main] INFO  org.hibernate.cfg.HbmBinder - Mapping class: com.bean.Employee -> EMP1 
Sep 04, 2014 7:06:52 PM org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
.19:06:52.320 [main] INFO  o.h.c.ConnectionProviderFactory - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider 
.19:06:54.660 [main] INFO  org.hibernate.cfg.SettingsFactory - RDBMS: Oracle, version: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production 
.19:06:54.660 [main] INFO  org.hibernate.cfg.SettingsFactory - JDBC driver: Oracle JDBC driver, version: 10.2.0.1.0XE 
.19:06:54.681 [main] INFO  org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.Oracle9Dialect 
.19:06:54.683 [main] WARN  org.hibernate.dialect.Oracle9Dialect - The Oracle9Dialect dialect has been deprecated; use either Oracle9iDialect or Oracle10gDialect instead 
.19:06:54.686 [main] INFO  o.h.t.TransactionFactoryFactory - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory 
.19:06:54.688 [main] INFO  o.h.t.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
.19:06:54.688 [main] INFO  org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled 
.19:06:54.688 [main] INFO  org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled 
.19:06:54.688 [main] INFO  org.hibernate.cfg.SettingsFactory - JDBC batch size: 15 
.19:06:54.688 [main] INFO  org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled 
.19:06:54.689 [main] INFO  org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled 
.19:06:54.689 [main] INFO  org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled 
.19:06:54.689 [main] INFO  org.hibernate.cfg.SettingsFactory - Connection release mode: auto 
.19:06:54.690 [main] INFO  org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1 
.19:06:54.690 [main] INFO  org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled 
.19:06:54.690 [main] INFO  org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled 
.19:06:54.690 [main] INFO  org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled 
.19:06:54.690 [main] INFO  org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
.19:06:54.692 [main] INFO  o.h.h.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory 
.19:06:54.692 [main] INFO  org.hibernate.cfg.SettingsFactory - Query language substitutions: {} 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - Second-level cache: enabled 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - Query cache: disabled 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled 
.19:06:54.693 [main] INFO  org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled 
.19:06:54.699 [main] INFO  org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout 
.19:06:54.700 [main] INFO  org.hibernate.cfg.SettingsFactory - Statistics: disabled 
.19:06:54.700 [main] INFO  org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled 
.19:06:54.700 [main] INFO  org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo 
.19:06:54.700 [main] INFO  org.hibernate.cfg.SettingsFactory - Named query checking : enabled 
.19:06:54.771 [main] INFO  o.hibernate.impl.SessionFactoryImpl - building session factory 
.19:06:55.035 [main] INFO  o.h.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured 
1
rajeev
Exception in thread "main" java.lang.NullPointerException
    at com.bean.EmployeeDAO.saveEmployee(EmployeeDAO.java:15)
    at com.bean.Test.main(Test.java:13)

我无法找到错误,任何人都可以帮助我。下面是我的代码

我已经创建了这样的数据库表

CREATE TABLE  EMP1   
(    
    ID NUMBER(10,0) NOT NULL PRIMARY KEY,   
    NAME VARCHAR2(10)   
);

应用程序上下文.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" id="dataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
        <property name="username" value="test"></property>
        <property name="password" value="test"></property>
    </bean>

    <bean class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
        id="mysessionFactory">

        <property name="dataSource" ref="dataSource"></property>
        <property name="mappingResources">
            <list>
                <value>Employee.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>

    <bean class="org.springframework.orm.hibernate3.HibernateTemplate"
        id="hibernateTemplate">
        <property name="sessionFactory" ref="mysessionFactory"></property>
    </bean>

    <bean class="com.bean.EmployeeDAO" id="employeeDAO">
        <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>
</beans>

EmployeeDAO.java

package com.bean;

import org.springframework.orm.hibernate3.HibernateTemplate;

public class EmployeeDAO {
    HibernateTemplate hibernateTemplate;

    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    public void saveEmployee(Employee employee){
        System.out.println(employee.getId());
        System.out.println(employee.getName());
        hibernateTemplate.save(employee);
    }

    public void updateEmployee(Employee employee){
        hibernateTemplate.update(employee);
    }
}

员工.java

package com.bean;

public class Employee {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

员工.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Sep 3, 2014 9:01:05 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.bean.Employee" table="EMP1">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
    </class>
</hibernate-mapping>

测试.java

package com.bean;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("app-context.xml");
        Employee employee=new Employee();
        employee.setName("rajeev");
        employee.setId(1);
        EmployeeDAO employeeDAO=new EmployeeDAO();
        employeeDAO.saveEmployee(employee);
    }
}

这是github链接[电子邮件受保护] /cdn-cgi/l/email-protection:mcarajeev/spring-with-hibernate1.git


如果你创建EmployeeDAO employeeDAO=new EmployeeDAO();这样HibernateTemplate属性就为null。

尝试改变

EmployeeDAO employeeDAO=new EmployeeDAO();

in

EmployeeDAO employeeDAO= (EmployeeDAO) context.getBean("employeeDAO");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 与 Hibernate - 线程“main”中的异常 java.lang.NullPointerException 的相关文章

  • “一对多”属性值类型不应是“持久实体”

    我有 1 个用户访问许多其他域 并将其放入我的代码中 用户等级 import org hibernate annotations Cascade import org hibernate annotations CascadeType im
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • org.hibernate.QueryException:无法解析属性:文件名

    我正在使用休眠Criteria从列中获取值filename在我的桌子上contaque recording log 但是当我得到结果时 它抛出异常 org hibernate QueryException 无法解析属性 文件名 com co
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • 在 Google App-Engine JAVA 中将文本转换为字符串,反之亦然

    如何从字符串转换为文本 java lang String to com google appengine api datastore Text 反之亦然 Check Javadoc http code google com appengin
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException

随机推荐