2016-05-25 11 views
-1

私のエンティティクラスを休止:私はExcelを保存しようとしているは、スプリングを使用してDBにブロブを保存する - である

public void saveProdDumpBLOB(ProdDumpBLOB produmpblob, FileInputStream fis, long filelength){ 

    try { 

     LoggerUtil.infoApplicationLog(".... inside saveProdDumpBLOB ...." + sessionFactory); 

     Session session = this.sessionFactory.getCurrentSession(); 

     Blob blob1 = Hibernate.getLobCreator(session).createBlob(fis,filelength); 

     produmpblob.setReport(blob1); 

     session.save(produmpblob); 

     LoggerUtil.infoApplicationLog(".... exiting saveProdDumpBLOB ...."); 
    } 

    catch (Exception e) { 
     LoggerUtil.errorApplicationLog("Error : ProdDumpBLOBDaoImpl:saveProdDumpBLOB. #Error Message: " + e.getMessage(), e); 
     e.printStackTrace(); 
    } 
} 

@Entity 
@Table (name = "rs_production_dump") 
public class ProdDumpBLOB implements Serializable{ 
    /** 
    * the serial version id. 
    */ 
    private static final long serialVersionUID = -3395282616292841663L; 

    @Column(name = "report_name") 
    protected String reportName; 

    @Column(name = "report") 
    protected Blob report; 

    @Column(name = "mime_type") 
    protected String mimeType ; 
    /* getters & setters*/ 
    } 

とBLOBを保存するためのDAO層方法は次のようですファイルをBlobとして返します。入力のFileInputStreamオブジェクトが作成され、POIライブラリを使用してExcelファイルを作成した後、次のように渡されました:

私の休止状態-config.xmlには、セッションが&春-config.xmlにはフェッチにマッピングされたエンティティで更新され
File xlsfile = new File(fileName); 
FileInputStream fis = new FileInputStream(xlsfile); 

次のように:

10:48:55.670 [main] DEBUG org.hibernate.internal.util.EntityPrinter - com.comp.ecmrs.dao.entity.ProdDumpBLOB{ [email protected], reportName=PROD-DUMP, mimeType=application/vnd.ms-excel} 
10:48:55.686 [main] DEBUG org.hibernate.SQL - insert into REPORT.rs_production_dump (mime_type, report, report_name) values (?, ?, ?) 
10:48:55.701 [main] DEBUG org.springframework.orm.hibernate4.HibernateTransactionManager - Initiating transaction rollback after commit exception 
java.lang.AbstractMethodError: org.apache.commons.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V 
    at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$5$1.doBind(BlobTypeDescriptor.java:133) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$2$1.doBind(BlobTypeDescriptor.java:90) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:93) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:280) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:275) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:57) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2786) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3064) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3509) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:364) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:356) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:277) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:328) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:558) ~[spring-orm-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [spring-aop-3.2.8.RELEASE.jar:3.2.8.RELEASE] 
    at com.sun.proxy.$Proxy47.saveProdDumpBLOB(Unknown Source) [na:na] 
    at com.comp.ecmrs.service.ReportServiceImpl.getProductionDumpReportData(ReportServiceImpl.java:417) [classes/:na] 
    at com.comp.ecmrs.test.ProductionDumpTest.testGetProdReportData(ProductionDumpTest.java:53) [test-classes/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_80-ea] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_80-ea] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_80-ea] 
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80-ea] 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) [junit.jar:na] 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit.jar:na] 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) [junit.jar:na] 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit.jar:na] 
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:72) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:81) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) [junit.jar:na] 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:216) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:82) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) [junit.jar:na] 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) [junit.jar:na] 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) [junit.jar:na] 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) [junit.jar:na] 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) [junit.jar:na] 
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:60) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:67) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [junit.jar:na] 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:162) [spring-test-4.1.0.RELEASE.jar:4.1.0.RELEASE] 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) [.cp/:na] 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na] 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) [.cp/:na] 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) [.cp/:na] 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) [.cp/:na] 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) [.cp/:na] 
10:48:55.701 [main] DEBUG org.springframework.orm.hibernate4.HibernateTransactionManager - Rolling back Hibernate transaction on Session [SessionImpl(PersistenceContext[entityKeys=[EntityKey[com.comp.ecmrs.dao.entity.ProdDumpBLOB#PLD_95103016]],collectionKeys=[]];ActionQueue[insertions=[EntityInsertAction[com.comp.ecmrs.dao.entity.ProdDumpBLOB#PLD_95103016]] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])] 
10:48:55.701 [main] DEBUG org.hibernate.engine.transaction.spi.AbstractTransactionImpl - rolling back 
10:48:55.701 [main] DEBUG org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction - rolled JDBC Connection 
10:48:55.701 [main] DEBUG org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction - re-enabling autocommit 
10:48:55.701 [main] DEBUG org.springframework.orm.hibernate4.HibernateTransactionManager - Closing Hibernate Session [SessionImpl(PersistenceContext[entityKeys=[EntityKey[com.comp.ecmrs.dao.entity.ProdDumpBLOB#PLD_95103016]],collectionKeys=[]];ActionQueue[insertions=[EntityInsertAction[com.comp.ecmrs.dao.entity.ProdDumpBLOB#PLD_95103016]] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])] after transaction 

ポンポン:

<bean id="prodDumpBlobDaoImpl" class="com.comp.ecmrs.dao.impl.ProdDumpBLOBDaoImpl"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

を私は、これは私はまだ私のログにこのエラーを取得していますが、トリックを行うべきだと思います.xml

<dependency> 
    <groupId>commons-dbcp</groupId> 
    <artifactId>commons-dbcp</artifactId> 
    <version>1.2.2</version> 
    <exclusions> 
     <exclusion> 
     <groupId>commons-pool</groupId> 
     <artifactId>commons-pool</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>com.thoughtworks.xstream</groupId> 
    <artifactId>xstream</artifactId> 
    <version>1.4.3</version> 
</dependency> 
+0

は、あなたのMavenのファイル – shankarsh15

+0

こんにちは、私のpom.xmlファイルのスニペットを見つけてくださいを共有....それは1.2.2バージョン \t \t \t コモンズ-DBCPであるとして目に見えます \t \t \t コモンズ-DBCP \t \t \t 1.2.2 \t \t \t \t \t \t \t \t \t \t \t \t コモンズプール \t \t \t \t \t コモンズプール \t \t \t \t \t \t \t \t \t \t \t \t \t \t com.thoughtworks.xstream \t \t \t XStreamの \t \t \t 1.4.3 \t \t

+0

私はあなたにコードを追加しました@ParulChauhanあなたのコメントからの質問。今後は、読みやすさのためにコメントを使用するのではなく、元の投稿に変更や編集を行ってください。 – Lucky

答えて

1

JDBC 4をサポートするdbcp 1.4を使用してください。あなたがusing.PleaseあるDBCPのバージョン

+0

あなたの助けに感謝shankarsh。抽象化されたbinarystreamの問題を修正しました。しかしEclipse IDEでは、依存関係を更新するのに苦労しました –

関連する問題