使用SpringBoot无法访问H2数据库控制台

LuX*_*XuS 1 java h2 maven spring-boot application.properties

我有基本的 SpringBoot 应用程序。我按照本教程:https://www.baeldung.com/spring-boot-h2-database从头开始​​创建所有内容,但是当我完成所有步骤并尝试访问 h2-console 时。它向我显示“无法访问此站点\xe2\x80\x99”。首先,我尝试了默认路径:http://localhost:8080/h2-console,然后我添加到我的 application.properties 文件中 - server.contextPath="api" 和 server.port=8090,以确保该端口未被使用,但仍然无法访问 h2 控制台。

\n

这是我的 pom.xml 文件:

\n
<parent>\n    <groupId>org.springframework.boot</groupId>\n    <artifactId>spring-boot-starter-parent</artifactId>\n    <version>2.3.3.RELEASE</version>\n    <relativePath/> <!-- lookup parent from repository -->\n\n</parent>\n\n<groupId>gtech</groupId>\n<artifactId>agriculturerent</artifactId>\n<version>0.0.1-SNAPSHOT</version>\n\n<properties>\n    <java.version>1.8</java.version>\n    <maven.compiler.source>1.8</maven.compiler.source>\n    <maven.compiler.target>1.8</maven.compiler.target>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n</properties>\n\n<dependencies>\n    <dependency>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-starter-data-jpa</artifactId>\n    </dependency>\n\n    <dependency>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-starter-test</artifactId>\n        <scope>test</scope>\n        <exclusions>\n            <exclusion>\n                <groupId>org.junit.vintage</groupId>\n                <artifactId>junit-vintage-engine</artifactId>\n            </exclusion>\n        </exclusions>\n    </dependency>\n\n    <dependency>\n        <groupId>com.h2database</groupId>\n        <artifactId>h2</artifactId>\n        <scope>runtime</scope>\n    </dependency>\n\n    <dependency>\n        <groupId>org.hibernate</groupId>\n        <artifactId>hibernate-core</artifactId>\n        <version>5.4.20.Final</version>\n    </dependency>\n\n</dependencies>\n\n<build>\n    <plugins>\n        <plugin>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-maven-plugin</artifactId>\n        </plugin>\n    </plugins>\n</build>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 application.properties 文件:

\n
spring.datasource.url=jdbc:h2:file:./TestDb\nspring.datasource.driverClassName=org.h2.Driver\nspring.datasource.username=sa\nspring.datasource.password=""\nspring.jpa.database-platform=org.hibernate.dialect.H2Dialect\n\nspring.h2.console.enabled=true\n
Run Code Online (Sandbox Code Playgroud)\n

主类是默认类:

\n
@SpringBootApplication\npublic class AgriculturerentApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(AgriculturerentApplication.class, args);\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n

你能告诉我访问 h2 控制台的错误在哪里吗?

\n

提前致谢。

\n

小智 5

我遇到了同样的问题,我解决这个问题的方法是,添加 Spring Boot 的开发工具,只需将其添加到 com.h2database 上方的 pom.xml 中即可。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

出于一个奇怪的原因,我刚刚添加了“devtools”并且可以正常工作。

如果我删除它并执行 Project->clean,问题会再次发生。