बंद कर दिया मैं नवीनतम संस्करण (स्प्रिंग 4.2.x, जेपीए और हाइबरनेट)वापस नहीं किया जा सकता है, कनेक्शन हाल ही में
करने के लिए अपने सभी जार फ़ाइलें अब मैं परीक्षण मामलों के साथ कुछ मुद्दों का सामना करना पड़ रहा उन्नयन किया है। यहां परीक्षण की स्टैकट्रेस है ...
org.springframework.transaction.TransactionSystemException: Could not roll back JPA transaction; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:548)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830)
at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:125)
at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:218)
at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:313)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:93)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:86)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:241)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.persistence.PersistenceException: unexpected error when rollbacking
at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:111)
at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:544)
... 25 more
Caused by: org.hibernate.TransactionException: rollback failed
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:217)
at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:108)
... 26 more
Caused by: org.hibernate.TransactionException: unable to rollback against JDBC connection
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:167)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:211)
... 27 more
Caused by: java.sql.SQLRecoverableException: Closed Connection
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3948)
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:163)
... 28 more
यह कहता है कि कनेक्शन बंद है .... और रोलबैक नहीं हो सकता है। हाइबरनेट ऑटो से पूल कनेक्शन कनेक्शन बंद कर देता है? क्या किसी के पास इस बारे में कोई विचार है कि इसका क्या कारण है?
संपादित करें: टेस्ट कोड जोड़ा (परीक्षण बड़ा है अधिक जानकारी की आवश्यकता है मैं फिर से संपादित करेंगे) xml फ़ाइल के लिए
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "testConfig.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "test.txManager", defaultRollback = true)
public class ControllerTest {
... logs ...
@Autowired
private Controller controller;
static final String testIdValue = "114294";
... other decorations...
private Request createRequest() throws Exception {
Request r = new Request();
r.setTask(true);
other set for test values...
r.assignTaskList(...);
...
return r;
}
@Test
public void assignEndpointsForsSynchTest() throws Exception {
Request req = createRequest();
try {
Response resp = Controller
.assignTask(req);
assertTrue(req.SUCCESSFUL);
} catch (Exception e) {
log.info(e.getMessage());
fail("Unexpected Exception");
}
}
}
<?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:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
">
<bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>classpath:log4j.properties</value>
</list>
</property>
</bean>
<bean id="test.dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
lazy-init="false">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url"
value="jdbc:h2:mem:test_mem;DB_CLOSE_DELAY=-1;MODE=ORACLE" />
</bean>
<jdbc:initialize-database data-source="test.dataSource">
<jdbc:script location="com/sky/ac/core/engine/comp/schema.sql" />
<jdbc:script location="com/sky/ac/core/engine/comp/test_data.sql" />
</jdbc:initialize-database>
<bean id="test.txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="test.entityMgrFactory" />
<property name="jpaDialect"> <!-- to support mixed jpaDAO and jdbcTemplateDAO access -->
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
<bean id="test.entityMgrFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="paPersistence" />
<property name="packagesToScan">
<list>
<value>com.sky.ac.core.lock.data</value>
<value>com.sky.ac.core.vs.dao.jpa</value>
<value>com.sky.ac.core.sr.data</value>
<value>com.sky.ac.core.rule.data</value>
<value>com.sky.ac.core.util.data</value>
<value>com.sky.ac.core.trace.data</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="ORACLE" />
</bean>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
<prop key="hibernate.id.new_generator_mappings">true</prop>
<prop key="hibernate.connection.release_mode">after_statement</prop>
</props>
</property>
<property name="dataSource" ref="test.dataSource" />
</bean>
<tx:annotation-driven transaction-manager="test.txManager"/>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
....bean class defs....
क्या आप परीक्षा भी पोस्ट कर सकते हैं? –
मुझे बताएं कि प्रदान करने के लिए अधिक जानकारी की आवश्यकता है या नहीं। मेरा मतलब है कि पिछले संस्करण के साथ मैं वही कोड चलाता हूं, लेकिन यह किसी भी तरह से नए संस्करण में त्रुटियां हैं – logger
आपकी 'test.entityMgrFactory' बीन' jPAVendorAdapter' का उपयोग डेटाबेस संपत्ति के साथ 'ORACLE' पर सेट की जाती है, और आपके 'डेटा स्रोत' प्रॉपर्टी पॉइंट H2 पर 'ORACLE' मोड के साथ डेटा स्रोत। क्या आपने 'ORACLE' मोड को अक्षम करने का प्रयास किया था और 'jpaVendorAdapter' को H2 में बदल दिया था? यह केवल परीक्षण करने के लिए होता है कि क्या होता है। – malaguna