Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.springframework.transaction.CannotCreateTransactionException:无法打开事务的Hibernate会话_Java_Spring_Hibernate_Session_Transactions - Fatal编程技术网

Java org.springframework.transaction.CannotCreateTransactionException:无法打开事务的Hibernate会话

Java org.springframework.transaction.CannotCreateTransactionException:无法打开事务的Hibernate会话,java,spring,hibernate,session,transactions,Java,Spring,Hibernate,Session,Transactions,错误日志: Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.372 sec <<< FAILURE! testCRUDCategory(net.kzn.shoppingbackend.test.CategoryTestCase) Time elapsed: 0.124 sec <<< ERROR! org.springframework.transaction.Cannot

错误日志:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.372 sec <<< FAILURE!
testCRUDCategory(net.kzn.shoppingbackend.test.CategoryTestCase)  Time elapsed: 0.124 sec  <<< ERROR!
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:542)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:447)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:277)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
    at com.sun.proxy.$Proxy32.add(Unknown Source)
测试班 CategoryTestCase.java

public class CategoryTestCase {

    private static AnnotationConfigApplicationContext context;


    private static CategoryDAO categoryDAO;


    private Category category;


    @BeforeClass
    public static void init() {
        context = new AnnotationConfigApplicationContext();
        context.scan("net.kzn.shoppingbackend");
        context.refresh();
        categoryDAO = (CategoryDAO)context.getBean("categoryDAO");
    }


    @Test
    public void testAddCategory() {

        category = new Category();

        category.setName("Laptop");
        category.setDescription("This is some description for laptop!");
        category.setImageURL("CAT_105.png");

        assertEquals("Successfully added a category inside the table!",true,categoryDAO.add(category));


    }
}
@BeforeClass
public static void init() throws Exception {
    org.h2.tools.Server.createTcpServer().start();
    context = new AnnotationConfigApplicationContext();
    context.scan("net.kzn.shoppingbackend");
    context.refresh();
    productDAO = (ProductDAO)context.getBean("productDAO");
}
为什么我无法为事务打开Hibernate会话;嵌套异常,似乎一切都很好,我为什么会得到这个错误 你也可以检查git-Hub代码同样的问题,请帮助我解决这个问题

我克隆了您的项目,发现
连接已断开:“java.net.ConnectException:连接被拒绝:localhost”[90067-194])
,您似乎没有启动H2服务器。根据您的URL,您正在使用tcp连接,即必须首先启动服务器

我在谷歌上搜索了一下,发现你可以用两种方法来解决这个问题:

您需要一个java主程序来启动服务器,如下所示:
org.h2.tools.Server.createTcpServer().start()
例如:
在测试类->ProductTestCase.java中

public class CategoryTestCase {

    private static AnnotationConfigApplicationContext context;


    private static CategoryDAO categoryDAO;


    private Category category;


    @BeforeClass
    public static void init() {
        context = new AnnotationConfigApplicationContext();
        context.scan("net.kzn.shoppingbackend");
        context.refresh();
        categoryDAO = (CategoryDAO)context.getBean("categoryDAO");
    }


    @Test
    public void testAddCategory() {

        category = new Category();

        category.setName("Laptop");
        category.setDescription("This is some description for laptop!");
        category.setImageURL("CAT_105.png");

        assertEquals("Successfully added a category inside the table!",true,categoryDAO.add(category));


    }
}
@BeforeClass
public static void init() throws Exception {
    org.h2.tools.Server.createTcpServer().start();
    context = new AnnotationConfigApplicationContext();
    context.scan("net.kzn.shoppingbackend");
    context.refresh();
    productDAO = (ProductDAO)context.getBean("productDAO");
}
或者,您可以在尝试连接之前手动启动它,如下所示:
java-cp h2*.jar org.h2.tools.Server

我克隆了您的项目,发现
连接已断开:“java.net.ConnectException:连接被拒绝:localhost”[90067-194])
,您似乎尚未启动h2服务器。根据您的URL,您正在使用tcp连接,即必须首先启动服务器

我在谷歌上搜索了一下,发现你可以用两种方法来解决这个问题:

您需要一个java主程序来启动服务器,如下所示:
org.h2.tools.Server.createTcpServer().start()
例如:
在测试类->ProductTestCase.java中

public class CategoryTestCase {

    private static AnnotationConfigApplicationContext context;


    private static CategoryDAO categoryDAO;


    private Category category;


    @BeforeClass
    public static void init() {
        context = new AnnotationConfigApplicationContext();
        context.scan("net.kzn.shoppingbackend");
        context.refresh();
        categoryDAO = (CategoryDAO)context.getBean("categoryDAO");
    }


    @Test
    public void testAddCategory() {

        category = new Category();

        category.setName("Laptop");
        category.setDescription("This is some description for laptop!");
        category.setImageURL("CAT_105.png");

        assertEquals("Successfully added a category inside the table!",true,categoryDAO.add(category));


    }
}
@BeforeClass
public static void init() throws Exception {
    org.h2.tools.Server.createTcpServer().start();
    context = new AnnotationConfigApplicationContext();
    context.scan("net.kzn.shoppingbackend");
    context.refresh();
    productDAO = (ProductDAO)context.getBean("productDAO");
}
或者,您可以在尝试连接之前手动启动它,如下所示:
java-cp h2*.jar org.h2.tools.Server

确保数据库URL和其他参数正确无误。未建立到数据库的连接。请检查它:可能与数据库的连接重复。请确保数据库URL以及其他参数正确无误。未建立与数据库的连接。请检查:可能存在重复的