spring-transaction和hibernate for web application嵌套异常在beans.xml中

时间:2016-03-27 11:24:26

标签: java hibernate spring-transactions

重要提示

我用spring-transaction写了一个项目,但这个项目是windows base 并没有问题,下面的代码工作与web和以下项目需要slf4j jar文件,我不知道这个和有错误请解释明显谢谢亲爱的。

我的豁免

Mar 27, 2016 11:32:03 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beans.xml]
Mar 27, 2016 11:32:03 AM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: oracle.jdbc.driver.OracleDriver
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'AddressManager' defined in class path resource [beans.xml]: Cannot resolve reference to bean 'localSessionFactoryBean' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.hibernate.cfg.Configuration]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/slf4j/impl/MessageFormatter
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at model.util.SpringUtil.getBean(SpringUtil.java:13)
    at model.bl.Main.main(Main.java:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.hibernate.cfg.Configuration]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/slf4j/impl/MessageFormatter
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
    ... 16 more
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.hibernate.cfg.Configuration]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/slf4j/impl/MessageFormatter
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newConfiguration(LocalSessionFactoryBean.java:818)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:549)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 23 more
Caused by: java.lang.NoClassDefFoundError: org/slf4j/impl/MessageFormatter
    at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:114)
    at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:421)
    at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:430)
    at ch.qos.logback.classic.Logger.debug(Logger.java:390)
    at org.hibernate.type.BasicTypeRegistry.register(BasicTypeRegistry.java:144)
    at org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:50)
    at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:46)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:249)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:300)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)
    ... 29 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.MessageFormatter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 43 more

Process finished with exit code 1

我的班级

这是我的代码,但没有工作!!!!在Windows基础应用程序中,我可以运行此代码,但此代码不适用于Web应用程序

package model.to;
public class AddressTO {
    private Long id;
    private String name;
    private String address;

    public AddressTO() {
    }

    public AddressTO(Long id, String name, String address) {
        this.id = id;
        this.name = name;
        this.address = address;
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

calb的hbm

     <?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 package="model.to">
    <class name="model.to.AddressTO" table="tbladdress">
        <id name="id" type="long" column="ID">
            <generator class="increment"/>
        </id>
        <property name="name" type="java.lang.String" >
            <column name="name" sql-type="NVARCHAR2(35)" not-null="true"  />
        </property>
        <property name="address" type="java.lang.String">
            <column name="address" sql-type="nvarchar(500)" not-null="true"/>
        </property>
    </class>
</hibernate-mapping>

SpringUtil类

package model.util;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class SpringUtil {
    private static BeanFactory beanFactory;
    static {
        beanFactory=new XmlBeanFactory(new ClassPathResource("beans.xml"));
    }
    public static Object getBean(String beanName){
        return beanFactory.getBean(beanName);
    }
}

主要班级

public class Main {
    public static void main(String[] args) {
        AddressManager addressManager = (AddressManager) SpringUtil.getBean("AddressManager");
        addressManager.register();
    }
}

AddressManager类

package model.bl;

import model.to.AddressTO;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class AddressManager extends HibernateDaoSupport {
    public void register(){
        AddressTO test=new AddressTO(0l,"manzel","tehran-behbodi");
        getHibernateTemplate().saveOrUpdate(test);
    }
}

用于设置spring的bean(beans.xml)

 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
            "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="saeid"/>
        <property name="password" value="myjava123"/>
    </bean>
        <bean id="localSessionFactoryBean" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!--<bean id="localSessionFactoryBean" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">-->
            <property name="dataSource" ref="driverManagerDataSource"/>
            <property name="mappingResources">
                <list>
                    <value>model/to/Address.hbm.xml</value>
                    <value>model/to/Telphone.hbm.xml</value>
                    <value>model/to/PersonTransaction.hbm.xml</value>
                    <value>model/to/Account.hbm.xml</value>
                    <value>model/to/Message.hbm.xml</value>
                    <value>model/to/OperationType.hbm.xml</value>
                    <value>model/to/Person.hbm.xml</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <props >
                    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                    <!--<prop key="hibernate.show_sql">true</prop>-->
                    <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                </props>
            </property>
        </bean>
        <bean id="AddressManager" class="model.bl.AddressManager">
            <property name="sessionFactory" ref="localSessionFactoryBean"/>
        </bean>

       <!-- <bean id="carManager" class="model.bl.CarManager" singleton="false">
            <property name="sessionFactory" ref="localSessionFactoryBean"/>
        </bean>
        <bean id="p" class="model.bl.PersonManager" singleton="false">
            <property name="sessionFactory" ref="localSessionFactoryBean"/>
        </bean>-->
    </beans>

0 个答案:

没有答案