SSH2整合问题之Hibernate 配置问题

laizhicong 2010-10-27 11:55:08
在tomcat启动的时候报错:
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
2010-10-27 11:34:54 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:433)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:231)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1313)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107)
... 47 more
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:188)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:128)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:78)
... 52 more


网上上说缺少一个包:javassist.jar,这可以排除。
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
十橙心橙意 2010-10-27
  • 打赏
  • 举报
回复
正在努力对照你的文件哪里有问题呀。

按道理integer应该没问题的!
laizhicong 2010-10-27
  • 打赏
  • 举报
回复
Pojo Class
//AgentUser.java

private Integer id;
private Integer level;
private String login;
private String password;
private String agencyName;
private String abn;
private String addr1;
private String addr2;
private String city;
private String state;
private String country;
private String postcode;
private String region;
private String name;
private String tel;
private String fax;
private String email;
private Integer manager;
private String contact;
private String commission;
private String contract;
private String createUser;
private String updateUser;
private Date lastLogin;
private Date createDate;
private Date updateDate;


....getter and setter method



AgentUser.hbm.xml 和 AgentUser.java做了修改:
myeclipse自动生成配置文件的时候,oracle的number类型生成为java.math.BigDecimal,我改为了integer。


请问发生这错误的原因是什么,网上说可以修改它的映射类型,不知道我这样修改有错吗?

我对SSH2都没有什么经验,请大家帮帮忙。
laizhicong 2010-10-27
  • 打赏
  • 举报
回复
我就贴出我的配置文件和表的sql结构:



-- Create table
create table AGENT_USER
(
ID NUMBER not null,
LEVEL NUMBER,
LOGIN VARCHAR2(150),
PASSWORD VARCHAR2(150),
AGENCY_NAME VARCHAR2(255),
ABN VARCHAR2(150),
ADDR1 VARCHAR2(255),
ADDR2 VARCHAR2(255),
CITY VARCHAR2(150),
STATE VARCHAR2(150),
COUNTRY VARCHAR2(150),
POSTCODE VARCHAR2(150),
REGION VARCHAR2(150),
NAME VARCHAR2(255),
TEL VARCHAR2(150),
FAX VARCHAR2(150),
EMAIL VARCHAR2(150),
MANAGER NUMBER,
CONTACT VARCHAR2(10),
COMMISSION VARCHAR2(10),
CONTRACT VARCHAR2(10),
CREATE_USER VARCHAR2(150),
UPDATE_USER VARCHAR2(150),
LAST_LOGIN DATE,
CREATE_DATE DATE,
UPDATE_DATE DATE
)


<?xml version="1.0" encoding="UTF-8"?>
<!--web.xml -->

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>


<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>



<!-- applicationContext.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource"
destroy-method = "close">

<property name = "driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name = "url">
<value>jdbc:oracle:thin:@192.168.1.116:1521:oradb</value>
</property>
<property name = "username">
<value>geacn</value>
</property>
<property name = "password">
<value>geacn1234</value>
</property>
</bean>

<!-- 配置sessionFactory -->
<bean id = "sessionFactory"
class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--注入数据库连接配置-->
<property name = "dataSource">
<ref local = "dataSource" />
</property>
<property name = "mappingResources">
<list>
<!--添加映射文件-->
<value>net\geacn\model\AgentUser.hbm.xml</value>
</list>
</property>
<property name = "hibernateProperties">
<props>
<prop key = "hibernate.show_sql">true</prop>
<prop key = "hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
</bean>

<!-- 配置事务-->
<bean id = "transactionManager"
class = "org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name = "sessionFactory">
<ref local = "sessionFactory" />
</property>
</bean>

<bean id = "agentUserlListAction" class = "net.geacn.action.agentuser.AgentUserList">
<property name = "agentUserBiz">
<ref local = "agentUserBiz" />
</property>
</bean>
<bean id = "agentUserBiz" class = "net.geacn.biz.impl.AgentUserBizImpl">
<property name = "agentUserDao">
<ref local = "agentUserDao" />
</property>
</bean>
<bean id = "agentUserDao" class = "net.geacn.dao.impl.AgentUserDaoImpl">
<property name = "sessionFactory">
<ref local = "sessionFactory" />
</property>
</bean>



</beans>


<!--AgentUser.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="net.geacn.model.AgentUser" table="AGENT_USER" schema="GEACN">
<id name="id" type="integer">
<column name="ID" />
<generator class = "sequence">
<param name = "sequence">ID</param>
</generator>

</id>
<property name="level" type="integer">
<column name="LEVEL" />
</property>
<property name="login" type="java.lang.String">
<column name="LOGIN" length="150" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="150" />
</property>
<property name="agencyName" type="java.lang.String">
<column name="AGENCY_NAME" />
</property>
<property name="abn" type="java.lang.String">
<column name="ABN" length="150" />
</property>
<property name="addr1" type="java.lang.String">
<column name="ADDR1" />
</property>
<property name="addr2" type="java.lang.String">
<column name="ADDR2" />
</property>
<property name="city" type="java.lang.String">
<column name="CITY" length="150" />
</property>
<property name="state" type="java.lang.String">
<column name="STATE" length="150" />
</property>
<property name="country" type="java.lang.String">
<column name="COUNTRY" length="150" />
</property>
<property name="postcode" type="java.lang.String">
<column name="POSTCODE" length="150" />
</property>
<property name="region" type="java.lang.String">
<column name="REGION" length="150" />
</property>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="tel" type="java.lang.String">
<column name="TEL" length="150" />
</property>
<property name="fax" type="java.lang.String">
<column name="FAX" length="150" />
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL" length="150" />
</property>
<property name="manager" type="integer">
<column name="MANAGER" precision="22" scale="0" />
</property>
<property name="contact" type="java.lang.String">
<column name="CONTACT" length="10" />
</property>
<property name="commission" type="java.lang.String">
<column name="COMMISSION" length="10" />
</property>
<property name="contract" type="java.lang.String">
<column name="CONTRACT" length="10" />
</property>
<property name="createUser" type="java.lang.String">
<column name="CREATE_USER" length="150" />
</property>
<property name="updateUser" type="java.lang.String">
<column name="UPDATE_USER" length="150" />
</property>
<property name="lastLogin" type="java.util.Date">
<column name="LAST_LOGIN" length="7" />
</property>
<property name="createDate" type="java.util.Date">
<column name="CREATE_DATE" length="7" />
</property>
<property name="updateDate" type="java.util.Date">
<column name="UPDATE_DATE" length="7" />
</property>
</class>
</hibernate-mapping>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧