部分错误代码:
java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required
org.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79)
org.springframework.orm.hibernate3.support.AbstractLobType.nullSafeSet(AbstractLobType.java:185)
org.hibernate.type.CustomType.nullSafeSet(CustomType.java:140)
org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2166)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2856)
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Application context definition for PetClinic on Hibernate. -->
<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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 装载属性配置文件 -->
<bean id="propertyConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:jdbc.properties">
</property>
</bean> <!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

<property name="timeBetweenEvictionRunsMillis" value="1000" />
<property name="validationQuery" value="select 1 from dual" />

<!--  
<property name="minPoolSize">
<value>2</value>
</property>

<property name="maxPoolSize">
<value>5</value>
</property>
-->
</bean>
<!-- 对数据库Blob字段和Clob字段的支持 --> 
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
  lazy-init="true" />
<bean id="lobHandler"
  class="org.springframework.jdbc.support.lob.OracleLobHandler"
  lazy-init="true">
  <property name="nativeJdbcExtractor">
   <ref local="nativeJdbcExtractor" />
  </property>
</bean>

<!-- 配置SessionFactory --> <bean id="sf"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 对数据库Blob字段和Clob字段的支持 -->
<property name="lobHandler" ref="lobHandler" />

</bean>
<!-- 配置事务管理器 --> <bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="dataSource" /> <property name="sessionFactory">
<ref bean="sf" />
</property> <!-- <property name="prototype-count">10</property> --> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice></beans>hibernate配置文件
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory>
<property name="hibernate.connection.SetBigStringTryClob">true</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!--  <property name="hibernate.connection.SetBigStringTryClob">true</property> -->
<!-- 缓存配置 -->
<!--  
<property name="hibernate,cache.use_query_cache">true</property>
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
-->

<!-- 一次读的数据库记录数 -->
<property name="jdbc.fetch_size">50</property>
<!-- 设定对数据库进行批量删除 -->
<property name="jdbc.batch_size">30</property> 

     <property name="hbm2ddl.auto">create</property>      <!-- 系统 -->
<mapping resource="com/lerx/admin/vo/Admin.hbm.xml" />
<mapping resource="com/lerx/user/vo/UserGroup.hbm.xml" />
<mapping resource="com/lerx/user/vo/UserDepartment.hbm.xml" />
<mapping resource="com/lerx/user/vo/User.hbm.xml" />
<mapping resource="com/lerx/user/vo/UserArtsCount.hbm.xml" />
<mapping resource="com/lerx/attachment/vo/Attachment.hbm.xml" />
<mapping resource="com/lerx/unicode/vo/ChineseCharacter.hbm.xml" /> <!-- 网站 --> <mapping resource="com/lerx/site/vo/SiteInfo.hbm.xml" />
<!-- <mapping class="com.lerx.style.site.vo.SiteStyle" /> -->
<mapping resource="com/lerx/style/site/vo/SiteStyle.hbm.xml" /> <mapping resource="com/lerx/style/site/vo/SiteStyleSubElementInCommon.hbm.xml" />
<mapping resource="com/lerx/article/group/vo/ArticleGroup.hbm.xml" />
<mapping resource="com/lerx/article/thread/vo/ArticleThread.hbm.xml" />
<mapping resource="com/lerx/comment/vo/Comment.hbm.xml" /> <!--问答系统 -->
<mapping resource="com/lerx/style/qa/vo/QaStyle.hbm.xml" />
<mapping resource="com/lerx/style/qa/vo/QaStyleSubElementInCommon.hbm.xml" />
<mapping resource="com/lerx/qa/vo/QaNav.hbm.xml" />
<mapping resource="com/lerx/qa/vo/QaItem.hbm.xml" /> <!-- 论坛 -->
<mapping resource="com/lerx/style/bbs/vo/BbsStyle.hbm.xml" />
<mapping resource="com/lerx/style/bbs/vo/BbsStyleSubElementInCommon.hbm.xml" />
<mapping resource="com/lerx/bbs/forum/vo/BbsForum.hbm.xml" />
<mapping resource="com/lerx/bbs/theme/vo/BbsTheme.hbm.xml" />
<mapping resource="com/lerx/bbs/score/vo/ScoreGroup.hbm.xml" />
<mapping resource="com/lerx/bbs/score/vo/ScoreScheme.hbm.xml" /> <!-- 投票系统 -->
<mapping resource="com/lerx/style/vote/vo/VoteStyle.hbm.xml" />
<mapping resource="com/lerx/style/vote/vo/VoteStyleSubElementInCommon.hbm.xml" />
<mapping resource="com/lerx/vote/vo/VoteSubject.hbm.xml" />
<mapping resource="com/lerx/vote/vo/VoteItem.hbm.xml" />
<mapping resource="com/lerx/vote/vo/VoteRec.hbm.xml" /> <!-- 抽奖系统 -->
<mapping resource="com/lerx/style/draw/vo/DrawStyle.hbm.xml" />
<mapping resource="com/lerx/draw/vo/Draw.hbm.xml" />
<!-- agsserver -->
<mapping resource="com/cqism/agsserver/vo/Agsadmin.hbm.xml" />
<mapping resource="com/cqism/agsserver/vo/Agsservices.hbm.xml" />
<mapping resource="com/cqism/agsserver/vo/Agsservices_apply.hbm.xml" />
</session-factory>
</hibernate-configuration>
hibernate映射文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.lerx.style.vote.vo">
<class name="VoteStyle" table="vote_style" dynamic-update="true">
<id name="id" column="id">
<generator class="native" />
</id> <property name="title" length="50" />
<property name="state"/>
<property name="author" length="50" />
<property name="description" />
<property name="barMaxValue" length="4" />
<property name="resultPageCode" type="org.springframework.orm.hibernate3.support.ClobStringType" />
<property name="publicCode1" type="org.springframework.orm.hibernate3.support.ClobStringType" />
<property name="publicCode2" type="org.springframework.orm.hibernate3.support.ClobStringType" />
<property name="publicCode3" type="org.springframework.orm.hibernate3.support.ClobStringType" />
<property name="publicCode4" type="org.springframework.orm.hibernate3.support.ClobStringType" />

<many-to-one name="publicStyle" outer-join="true" lazy="false" cascade="all"
column="pid" class="VoteStyleSubElementInCommon" />
<many-to-one name="voteStyle" outer-join="true" lazy="false" cascade="all"
column="vid" class="VoteStyleSubElementInCommon" />
<many-to-one name="itemStyle" outer-join="true" lazy="false" cascade="all"
column="iid" class="VoteStyleSubElementInCommon" />
<many-to-one name="resultStyle" outer-join="true" lazy="false" cascade="all"
column="rid" class="VoteStyleSubElementInCommon" />
<many-to-one name="joinStyle" outer-join="true" lazy="false" cascade="all"
column="jid" class="VoteStyleSubElementInCommon" />

</class></hibernate-mapping>

解决方案 »

  1.   

    另外我的环境
    tomcat6
    oracle11g
    hibernate3.6
    ojdbc6_g
      

  2.   

    自己顶一个吧,没人回答,  这个问题是解决了。但是又遇到读取clob的时候,有时候读取不出来,也不报错。有时候报回滚失败的错误。
    悲剧中。
    类似下面的错误
    2012-12-4 16:24:10 org.hibernate.transaction.JDBCTransaction rollback
    严重: JDBC rollback failed
    java.sql.SQLException: 违反协议
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:120)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:118)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:224)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:296)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:539)
    at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:136)
    at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:765)
    at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:4718)
    at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:855)
    at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:213)
    at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:192)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:674)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:823)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:800)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:339)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy9.findStyleById(Unknown Source)
    at com.lerx.style.site.service.SiteStyleAction.findNameById(SiteStyleAction.java:217)
    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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    at org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:293)
    at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:175)
    at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
    at org.apache.jsp.admin.admin_005fsite_005fstyle_005finf_005fdetails_005fpop_jsp._jspx_meth_s_005faction_005f0(admin_005fsite_005fstyle_005finf_005fdetails_005fpop_jsp.java:253)
    at org.apache.jsp.admin.admin_005fsite_005fstyle_005finf_005fdetails_005fpop_jsp._jspService(admin_005fsite_005fstyle_005finf_005fdetails_005fpop_jsp.java:115)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.j
    ava:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164)
    at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept