Java – spring boot HSQLDB / H2 always displays “port in use” on Windows 10

I am developing a spring boot application. When I try to run the application using an embedded database (HSQLDB or H2, memory or file), I receive the following error, even if the port is not used:

org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-9080]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPrevIoUslyRemovedConnectors(TomcatEmbeddedServletContainer.java:234) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:179) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) [spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
    at br.com.mixavionics.GsmApplication.main(GsmApplication.java:10) [classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) ~[na:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) ~[na:1.8.0_91]
    at java.lang.reflect.Method.invoke(UnkNown Source) ~[na:1.8.0_91]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.4.0.RELEASE.jar:1.4.0.RELEASE]
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start Failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1042) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    ... 18 common frames omitted
Caused by: java.io.IOException: Unable to establish loopback connection
    at sun.nio.ch.PipeImpl$Initializer.run(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.PipeImpl$Initializer.run(UnkNown Source) ~[na:1.8.0_91]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_91]
    at sun.nio.ch.PipeImpl.<init>(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.SelectorProviderImpl.openPipe(UnkNown Source) ~[na:1.8.0_91]
    at java.nio.channels.Pipe.open(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.WindowsSelectorImpl.<init>(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.WindowsSelectorProvider.openSelector(UnkNown Source) ~[na:1.8.0_91]
    at java.nio.channels.Selector.open(UnkNown Source) ~[na:1.8.0_91]
    at org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector(NioSelectorPool.java:66) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.tomcat.util.net.NioSelectorPool.open(NioSelectorPool.java:130) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:247) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:874) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:573) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1035) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    ... 19 common frames omitted
Caused by: java.net.socketException: Permission denied: connect
    at sun.nio.ch.Net.connect0(Native Method) ~[na:1.8.0_91]
    at sun.nio.ch.Net.connect(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.Net.connect(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.socketChannelImpl.connect(UnkNown Source) ~[na:1.8.0_91]
    at java.nio.channels.socketChannel.open(UnkNown Source) ~[na:1.8.0_91]
    at sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(UnkNown Source) ~[na:1.8.0_91]
    ... 34 common frames omitted

I've tried - DJava net. The preferipv4stack = true option changed the port and disabled the firewall, but failed (I am the administrator of the machine) On my Linux machine (Linux Mint), the application (using HSQLDB / H2) runs well without errors, and the application runs normally on Windows 10 machine with MySQL server

What did I miss?

My application Properties file:

spring.datasource.url = jdbc:hsqldb:mem:test
#spring.datasource.url = jdbc:hsqldb:file:./database/database
spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
spring.jpa.database-platform=org.hibernate.dialect.HsqlDialect
spring.datasource.username = sa
spring.datasource.password = sa

My POM XML dependencies:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

Solution

It seems that HSQLDB / H2 is still running Can you kill the process of all Java applications and try to run again?!

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>