java - 如何在 java ee 应用程序中启用 h2 控制台
问题描述
我想在开发我的应用程序期间访问 h2 控制台功能。我使用 JavaEE 和 wildfly 作为我的应用程序服务器。
我知道对于 Spring Boot,我们需要添加以下配置行:
spring.h2.console.enabled=true
spring.h2.console.path=/h2
比我们有控制台http://localhost:8080/h2/
但是 javaEE 呢?我怎样才能访问它?我的 pom 对 h2 有以下依赖:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.196</version>
<scope>runtime</scope>
</dependency>
和persistance.xml:
<properties>
<property name="eclipselink.logging.level" value="INFO"/>
<property name="eclipselink.logging.parameters" value="true"/>
<property name="hibernate.show_sql" value="true" />
<property name="javax.persistence.schema-generation.database.action" value="create"/>
<property name="javax.persistence.sql-load-script-source" value="META-INF/initial.sql"/>
</properties>
解决方案
如果您在 JEE 服务器上部署 Spring Boot,则控制台应该位于应用程序上下文路径下定义的路径。
但是,如果您要求不依赖于 Spring Boot 的解决方案,那么有一个org.h2.server.web.WebServlet
完全适合这种情况的解决方案。所需要的只是使用WEB-INF/web.xml
部署描述符公开它:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>h2-console</servlet-name>
<servlet-class>org.h2.server.web.WebServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>h2-console</servlet-name>
<url-pattern>/h2/*</url-pattern>
</servlet-mapping>
</web-app>
推荐阅读
- python - 如何在现有模型中用 BERT 预训练嵌入替换 word2vec 嵌入?
- d3.js - D3 散点图损坏的 Y 值
- next.js - Next.js 中的永久和非永久重定向有什么区别?
- node.js - 在正确获取数据之前,有什么方法可以调用 useEffect 吗?
- regex - 在给定超字符串正则表达式的情况下查找字符串的值
- markdown - 如何阻止 SvelteKit 将 Markdown MDSVEX 作为组件处理?
- reactjs - 如何在 React.js 组件中呈现获取请求?
- ruby-on-rails - 如何使用 `Searchkick.multi_search` 和 `with_highlights`?未定义的方法“with_highlights”
- javascript - 无法从浏览器中的 JS 将文件放入谷歌云存储桶
- c++ - 注册表查询信息给出了不正确的值