Java – spring boot HSQLDB / H2 always displays “port in use” on Windows 10
•
Java
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
二维码