使用webAllowOthers进行H2控制台远程访问

时间:2017-05-16 15:14:09

标签: java spring spring-boot h2

我是H2数据库的新手。

我正在尝试通过网络浏览器访问我的控制台,但我收到此错误:

抱歉,此服务器上禁用了远程连接('webAllowOthers')。

我在我的属性文件中声明了这个选项,如下所示:

spring.h2.console.settings.web-allow-others=true

我的属性文件名为monitor.properties,位于用户主目录中,具有774权限。

我的第一个想法是我的属性文件被忽略,正在采取默认选项。

但经过进一步调查,我发现了这一点:

2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [commandLineArgs]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [servletConfigInitParams]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [servletContextInitParams]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [systemProperties]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [systemEnvironment]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [random]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:81 - Searching for key 'spring.h2.console.settings.web-allow-others' in [applicationConfigurationProperties]
2017-05-16 11:01:48 DEBUG[main] PropertySourcesPropertyResolver:90 - Found key 'spring.h2.console.settings.web-allow-others' in [applicationConfigurationProperties] with type [String] and value 'true'

因此,尽管正在读取我的属性文件并且识别了值true,但我仍然无法访问控制台。我做了一个网络研究,但我找不到任何可以让我了解这个问题的内容。

这里的任何人都面临过类似的问题或者有什么线索吗?

1 个答案:

答案 0 :(得分:1)

在代码中添加以下bean,然后打开http://remoteIp:8080/,它将在远程计算机上正常工作

    @Bean(initMethod="start",destroyMethod="stop")
public org.h2.tools.Server h2WebConsoleServer () throws SQLException {
    return org.h2.tools.Server.createWebServer("-web","-webAllowOthers","-webDaemon","-webPort", "8080");
}