Как исправить UnresolvedAddressException в платформе Micronaut? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь запустить «Hello World» на платформе Micronaut от имени пользователя root, но получаю исключение UnresolvedAddressException.

Я создал приложение Micronaut «Hello World» от CLI Micronaut:

$ mn create-app hello-world

Установить application.yml:

micronaut:
    application:
        name: hello-world
    server:
        port: 8080

Когда я запускаю $ ./gradlew run, я получаю:

17:55:46.925 [main] ERROR i.m.h.server.netty.NettyHttpServer - Error starting Micronaut server: null
java.nio.channels.UnresolvedAddressException: null
        at sun.nio.ch.Net.checkAddress(Net.java:101)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:218)
        at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:130)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(Thread.java:748)
17:55:46.945 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Unable to start Micronaut server on port: 8080
io.micronaut.http.server.exceptions.ServerStartupException: Unable to start Micronaut server on port: 8080
        at io.micronaut.http.server.netty.NettyHttpServer.bindServerToHost(NettyHttpServer.java:431)
        at io.micronaut.http.server.netty.NettyHttpServer.start(NettyHttpServer.java:303)
        at io.micronaut.http.server.netty.NettyHttpServer.start(NettyHttpServer.java:107)
        at io.micronaut.runtime.Micronaut.lambda$start$1(Micronaut.java:73)
        at java.util.Optional.ifPresent(Optional.java:159)
        at io.micronaut.runtime.Micronaut.start(Micronaut.java:71)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:260)
        at hello.world.Application.main(Application.java:8)
Caused by: java.nio.channels.UnresolvedAddressException: null
        at sun.nio.ch.Net.checkAddress(Net.java:101)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:218)
        at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:130)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(Thread.java:748)

Если я запускаю его от имени пользователя root $ sudo ./gradlew run, то это работает.Я использую Java 1.8.0_202, версия Micronaut libs: 1.0.5.Операционная система openSUSE 15.0.Загрузочные приложения Spring работают без проблем, и мне не нужно запускать их как пользователь root.

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете указать имя хоста явно, и тогда оно должно работать. Обновите конфигурацию application.yml следующим образом (добавьте строку host: localhost):

micronaut:
    application:
        name: hello-world
    server:
        host: localhost
        port: 8080
...