Как включить консоль h2 в приложении java ee - PullRequest
1 голос
/ 21 марта 2020

Я хотел бы получить доступ к функции консоли h2 во время разработки моего приложения. Я использую JavaEE и wildfly в качестве сервера приложений.

Я знаю, что для весенней загрузки нам нужно добавить следующие строки конфигурации:

spring.h2.console.enabled=true

spring.h2.console.path=/h2

, и тогда у нас будет консоль на http://localhost:8080/h2/

А как же javaEE? Как я могу получить к нему доступ? У моего помона есть зависимость от h2:

<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.196</version>
   <scope>runtime</scope>
</dependency>

и упорство. 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>

1 Ответ

1 голос
/ 22 марта 2020

Если вы развертываете Spring Boot на сервере JEE, консоль должна находиться по указанному пути в контексте контекста приложения.

Однако, если вы запрашиваете решение, не основанное на 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>
...