by Anonymous » 12 Feb 2025, 22:25
Kurzversion < /h2>
- discord4j bot aus einer java main: funktioniert gut A Quarkus Main: DNS für Discord.com nicht auflöst Kontext < /h2>
Ich versuche, Discord4J in Quarkus zu bewirken, aber ich begegne einige Fehler. Und es funktioniert gut, wenn ich aus einer Java -Hauptmethode reinlasse. Nun, vielleicht nicht so viel, aber plötzlich kann Reactor Netty die discord.com -Domäne nicht mehr beheben (stapel unten verfügbar). . Der einzige Unterschied besteht darin, dass das Discord-Token von einem @configMapping stammt, anstatt hartcodiert zu sein, aber der Wert wird korrekt injiziert. ul>
Ich habe versucht, die Reaktorrors zu erzwingen, wie dies in einem anderen vorgeschlagen wurde, anscheinend in Bezug Der Quarkus discord4j ist ein kurzer Versuch, aber es scheint die gleichen Symptome zu zeigen -> Dies würde darauf hindeuten, dass dies nicht immer ein Problem war, vielleicht etwas mit einer Entwicklung von Quarkus (Project's POM legt nahe, dass es zuletzt mit Quarkus 3.7 getestet wurde, wahrscheinlich ein Jahr ein Jahr vor). < /li>
< /ul>
Die Frage < /h2>
Ich vermute, Quarkus (Meuterei?) Anpasset das Netty (Reaktor Netty?) Konfiguration, aber ich kann keine Details dazu finden oder wie sie zu diesem Fehler führen würde. Ausgabe?
Eine Richtung wird geschätzt, ich kenne die Eingeweide von Quarkus einfach nicht genug, um zu wissen, wo ich anfangen soll, zu untersuchen.
Danke im Voraus.
Technischer Stack < /h2>
discord4j 3.2.7 < /li>
Quarkus 3.18.1 (Back Going Knochen zum Testen/Lösen, einschließlich nur ARC)
- Java 21
Addendum: Die Stapelverfolgung
Code: Select all
2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi]
2025-02-12 22:07:19,424 INFO [dis.cor.DiscordClientBuilder] (Quarkus Main Thread) Discord4J 3.2.6-5-g501ec30 (https://discord4j.com)
2025-02-12 22:07:19,897 WARN [io.net.res.dns.DefaultDnsServerAddressStreamProvider] (d4j-limiter-1) Default DNS servers: [/[2001:4860:4860:0:0:0:0:8888]:53, /[2001:4860:4860:0:0:0:0:8844]:53] (Google Public DNS as a fallback)
2025-02-12 22:07:20,153 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application
Exception in DiscordConfiguration.java:76
74 });
75
→ 76 login.block();
77 return client;
78 }
...
: reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at reactor.core.Exceptions.propagate(Exceptions.java:396)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1742)
...
Caused by: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below:
Error has been observed at the following site(s):
*__checkpoint ⇢ Request to GET /gateway/bot [RequestStream]
*__checkpoint ⇢ Request to GET /gateway/bot [DefaultRouter]
Original Stack Trace:
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097)
at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455)
at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
...
Caused by: io.netty.resolver.dns.DnsNameResolverException: [223: /[2001:4860:4860:0:0:0:0:8844]:53] DefaultDnsQuestion(discord.com. IN A) failed to send a query '223' via UDP (no stack trace available)
Caused by: java.net.SocketException: Network is unreachable: sendto
at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:1005)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:966)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:889)
at io.netty.channel.socket.nio.NioDatagramChannel.doWriteMessage(NioDatagramChannel.java:297)
...
2025-02-12 22:07:20,200 INFO [io.quarkus] (Quarkus Main Thread) mybot stopped in 0.011s
< /code>
voll < /h3>
2025-02-12 22:07:18,129 INFO [io.quarkus] (Quarkus Main Thread) mybot 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.18.1) started in 2.662s.
2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi]
2025-02-12 22:07:19,424 INFO [dis.cor.DiscordClientBuilder] (Quarkus Main Thread) Discord4J 3.2.6-5-g501ec30 (https://discord4j.com)
2025-02-12 22:07:19,897 WARN [io.net.res.dns.DefaultDnsServerAddressStreamProvider] (d4j-limiter-1) Default DNS servers: [/[2001:4860:4860:0:0:0:0:8888]:53, /[2001:4860:4860:0:0:0:0:8844]:53] (Google Public DNS as a fallback)
2025-02-12 22:07:20,153 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application
Exception in DiscordConfiguration.java:76
74 });
75
→ 76 login.block();
77 return client;
78 }
Exception in DiscordConfiguration.java:30
28 log.debug("Producing Discord bot");
29
→ 30 return buildDiscordClient(config.token());
31 }
32
: reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at reactor.core.Exceptions.propagate(Exceptions.java:396)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1742)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.buildDiscordClient(DiscordConfiguration.java:76)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.produceBot(DiscordConfiguration.java:30)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.doCreate(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.create(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.create(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
at io.quarkus.arc.impl.ComputingCacheContextInstances.computeIfAbsent(ComputingCacheContextInstances.java:19)
at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.get(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.get(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.doCreate(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.create(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.create(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.c0(Unknown Source)
at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.computeIfAbsent(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:23)
at org.keyboardplaying.labs.HabotApplication_ClientProxy.arc$delegate(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_ClientProxy.run(Unknown Source)
at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:143)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:77)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:48)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:116)
at java.base/java.lang.Thread.run(Thread.java:1583)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
at reactor.core.publisher.Mono.block(Mono.java:1742)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.buildDiscordClient(DiscordConfiguration.java:76)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.produceBot(DiscordConfiguration.java:30)
... 32 more
Caused by: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: < b r / > E r r o r h a s b e e n o b s e r v e d a t t h e f o l l o w i n g s i t e ( s ) : < b r / > * _ _ c h e c k p o i n t ⇢ R e q u e s t t o G E T / g a t e w a y / b o t [ R e q u e s t S t r e a m ] < b r / > * _ _ c h e c k p o i n t ⇢ R e q u e s t t o G E T / g a t e w a y / b o t [ D e f a u l t R o u t e r ] < b r / > O r i g i n a l S t a c k T r a c e : < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . f i n i s h R e s o l v e ( D n s R e s o l v e C o n t e x t . j a v a : 1 1 5 0 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . t r y T o F i n i s h R e s o l v e ( D n s R e s o l v e C o n t e x t . j a v a : 1 0 9 7 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . q u e r y ( D n s R e s o l v e C o n t e x t . j a v a : 4 5 5 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . a c c e s s $ 7 0 0 ( D n s R e s o l v e C o n t e x t . j a v a : 7 0 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t $ 2 . o p e r a t i o n C o m p l e t e ( D n s R e s o l v e C o n t e x t . j a v a : 5 2 4 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r 0 ( D e f a u l t P r o m i s e . j a v a : 5 9 0 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s 0 ( D e f a u l t P r o m i s e . j a v a : 5 8 3 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s N o w ( D e f a u l t P r o m i s e . j a v a : 5 5 9 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s ( D e f a u l t P r o m i s e . j a v a : 4 9 2 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . s e t V a l u e 0 ( D e f a u l t P r o m i s e . j a v a : 6 3 6 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . s e t F a i l u r e 0 ( D e f a u l t P r o m i s e . j a v a : 6 2 9 ) < b r / > at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.resolver.dns.DnsQueryContext.finishFailure(DnsQueryContext.java:343)
at io.netty.resolver.dns.DnsQueryContext.onQueryWriteCompletion(DnsQueryContext.java:264)
at io.netty.resolver.dns.DnsQueryContext.access$600(DnsQueryContext.java:51)
at io.netty.resolver.dns.DnsQueryContext$3.operationComplete(DnsQueryContext.java:255)
at io.netty.resolver.dns.DnsQueryContext$3.operationComplete(DnsQueryContext.java:252)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64)
at io.netty.channel.ChannelOutboundBuffer.safeFail(ChannelOutboundBuffer.java:754)
at io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:339)
at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:319)
at io.netty.channel.nio.AbstractNioMessageChannel.doWrite(AbstractNioMessageChannel.java:158)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:929)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:359)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:893)
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
at io.netty.channel.DefaultChannelPipeline.flush(DefaultChannelPipeline.java:916)
at io.netty.channel.AbstractChannel.flush(AbstractChannel.java:253)
at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:398)
at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:247)
at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:185)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: io.netty.resolver.dns.DnsNameResolverException: [223: /[2001:4860:4860:0:0:0:0:8844]:53] DefaultDnsQuestion(discord.com. IN A) failed to send a query '223' via UDP (no stack trace available)
Caused by: java.net.SocketException: Network is unreachable: sendto
at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:1005)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:966)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:889)
at io.netty.channel.socket.nio.NioDatagramChannel.doWriteMessage(NioDatagramChannel.java:297)
at io.netty.channel.nio.AbstractNioMessageChannel.doWrite(AbstractNioMessageChannel.java:143)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:929)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:359)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:893)
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
at io.netty.channel.DefaultChannelPipeline.flush(DefaultChannelPipeline.java:916)
at io.netty.channel.AbstractChannel.flush(AbstractChannel.java:253)
at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:398)
at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:247)
at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:185)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-02-12 22:07:20,200 INFO [io.quarkus] (Quarkus Main Thread) mybot stopped in 0.011s
Kurzversion < /h2>
[list]
[*] discord4j bot aus einer java main: funktioniert gut A Quarkus Main: DNS für Discord.com nicht auflöst Kontext < /h2>
Ich versuche, Discord4J in Quarkus zu bewirken, aber ich begegne einige Fehler. Und es funktioniert gut, wenn ich aus einer Java -Hauptmethode reinlasse. Nun, vielleicht nicht so viel, aber plötzlich kann Reactor Netty die discord.com -Domäne nicht mehr beheben (stapel unten verfügbar). . Der einzige Unterschied besteht darin, dass das Discord-Token von einem @configMapping stammt, anstatt hartcodiert zu sein, aber der Wert wird korrekt injiziert. ul>
Ich habe versucht, die Reaktorrors zu erzwingen, wie dies in einem anderen vorgeschlagen wurde, anscheinend in Bezug Der Quarkus discord4j ist ein kurzer Versuch, aber es scheint die gleichen Symptome zu zeigen -> Dies würde darauf hindeuten, dass dies nicht immer ein [url=viewtopic.php?t=11587]Problem[/url] war, vielleicht etwas mit einer Entwicklung von Quarkus (Project's POM legt nahe, dass es zuletzt mit Quarkus 3.7 getestet wurde, wahrscheinlich ein Jahr ein Jahr vor). < /li>
< /ul>
Die Frage < /h2>
Ich vermute, Quarkus (Meuterei?) Anpasset das Netty (Reaktor Netty?) Konfiguration, aber ich kann keine Details dazu finden oder wie sie zu diesem Fehler führen würde. Ausgabe?
Eine Richtung wird geschätzt, ich kenne die Eingeweide von Quarkus einfach nicht genug, um zu wissen, wo ich anfangen soll, zu untersuchen.
Danke im Voraus.
Technischer Stack < /h2>
discord4j 3.2.7 < /li>
Quarkus 3.18.1 (Back Going Knochen zum Testen/Lösen, einschließlich nur ARC)
[*] Java 21
[/list]
Addendum: Die Stapelverfolgung
[code]2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi]
2025-02-12 22:07:19,424 INFO [dis.cor.DiscordClientBuilder] (Quarkus Main Thread) Discord4J 3.2.6-5-g501ec30 (https://discord4j.com)
2025-02-12 22:07:19,897 WARN [io.net.res.dns.DefaultDnsServerAddressStreamProvider] (d4j-limiter-1) Default DNS servers: [/[2001:4860:4860:0:0:0:0:8888]:53, /[2001:4860:4860:0:0:0:0:8844]:53] (Google Public DNS as a fallback)
2025-02-12 22:07:20,153 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application
Exception in DiscordConfiguration.java:76
74 });
75
→ 76 login.block();
77 return client;
78 }
...
: reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at reactor.core.Exceptions.propagate(Exceptions.java:396)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1742)
...
Caused by: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below:
Error has been observed at the following site(s):
*__checkpoint ⇢ Request to GET /gateway/bot [RequestStream]
*__checkpoint ⇢ Request to GET /gateway/bot [DefaultRouter]
Original Stack Trace:
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097)
at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455)
at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
...
Caused by: io.netty.resolver.dns.DnsNameResolverException: [223: /[2001:4860:4860:0:0:0:0:8844]:53] DefaultDnsQuestion(discord.com. IN A) failed to send a query '223' via UDP (no stack trace available)
Caused by: java.net.SocketException: Network is unreachable: sendto
at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:1005)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:966)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:889)
at io.netty.channel.socket.nio.NioDatagramChannel.doWriteMessage(NioDatagramChannel.java:297)
...
2025-02-12 22:07:20,200 INFO [io.quarkus] (Quarkus Main Thread) mybot stopped in 0.011s
< /code>
voll < /h3>
2025-02-12 22:07:18,129 INFO [io.quarkus] (Quarkus Main Thread) mybot 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.18.1) started in 2.662s.
2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2025-02-12 22:07:18,136 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi]
2025-02-12 22:07:19,424 INFO [dis.cor.DiscordClientBuilder] (Quarkus Main Thread) Discord4J 3.2.6-5-g501ec30 (https://discord4j.com)
2025-02-12 22:07:19,897 WARN [io.net.res.dns.DefaultDnsServerAddressStreamProvider] (d4j-limiter-1) Default DNS servers: [/[2001:4860:4860:0:0:0:0:8888]:53, /[2001:4860:4860:0:0:0:0:8844]:53] (Google Public DNS as a fallback)
2025-02-12 22:07:20,153 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application
Exception in DiscordConfiguration.java:76
74 });
75
→ 76 login.block();
77 return client;
78 }
Exception in DiscordConfiguration.java:30
28 log.debug("Producing Discord bot");
29
→ 30 return buildDiscordClient(config.token());
31 }
32
: reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at reactor.core.Exceptions.propagate(Exceptions.java:396)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1742)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.buildDiscordClient(DiscordConfiguration.java:76)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.produceBot(DiscordConfiguration.java:30)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.doCreate(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.create(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.create(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:32)
at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
at io.quarkus.arc.impl.ComputingCacheContextInstances.computeIfAbsent(ComputingCacheContextInstances.java:19)
at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.get(Unknown Source)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration_ProducerMethod_produceBot_aihjzrC3vxo3N-4V44lsyBRtCpQ_Bean.get(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.doCreate(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.create(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_Bean.create(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.c0(Unknown Source)
at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.computeIfAbsent(Unknown Source)
at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:23)
at org.keyboardplaying.labs.HabotApplication_ClientProxy.arc$delegate(Unknown Source)
at org.keyboardplaying.labs.HabotApplication_ClientProxy.run(Unknown Source)
at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:143)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:77)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:48)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:116)
at java.base/java.lang.Thread.run(Thread.java:1583)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
at reactor.core.publisher.Mono.block(Mono.java:1742)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.buildDiscordClient(DiscordConfiguration.java:76)
at org.keyboardplaying.labs.discord.config.DiscordConfiguration.produceBot(DiscordConfiguration.java:30)
... 32 more
Caused by: java.net.UnknownHostException: Failed to resolve 'discord.com' [A(1)] after 2 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: < b r / > E r r o r h a s b e e n o b s e r v e d a t t h e f o l l o w i n g s i t e ( s ) : < b r / > * _ _ c h e c k p o i n t ⇢ R e q u e s t t o G E T / g a t e w a y / b o t [ R e q u e s t S t r e a m ] < b r / > * _ _ c h e c k p o i n t ⇢ R e q u e s t t o G E T / g a t e w a y / b o t [ D e f a u l t R o u t e r ] < b r / > O r i g i n a l S t a c k T r a c e : < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . f i n i s h R e s o l v e ( D n s R e s o l v e C o n t e x t . j a v a : 1 1 5 0 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . t r y T o F i n i s h R e s o l v e ( D n s R e s o l v e C o n t e x t . j a v a : 1 0 9 7 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . q u e r y ( D n s R e s o l v e C o n t e x t . j a v a : 4 5 5 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t . a c c e s s $ 7 0 0 ( D n s R e s o l v e C o n t e x t . j a v a : 7 0 ) < b r / > a t i o . n e t t y . r e s o l v e r . d n s . D n s R e s o l v e C o n t e x t $ 2 . o p e r a t i o n C o m p l e t e ( D n s R e s o l v e C o n t e x t . j a v a : 5 2 4 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r 0 ( D e f a u l t P r o m i s e . j a v a : 5 9 0 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s 0 ( D e f a u l t P r o m i s e . j a v a : 5 8 3 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s N o w ( D e f a u l t P r o m i s e . j a v a : 5 5 9 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . n o t i f y L i s t e n e r s ( D e f a u l t P r o m i s e . j a v a : 4 9 2 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . s e t V a l u e 0 ( D e f a u l t P r o m i s e . j a v a : 6 3 6 ) < b r / > a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t P r o m i s e . s e t F a i l u r e 0 ( D e f a u l t P r o m i s e . j a v a : 6 2 9 ) < b r / > at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.resolver.dns.DnsQueryContext.finishFailure(DnsQueryContext.java:343)
at io.netty.resolver.dns.DnsQueryContext.onQueryWriteCompletion(DnsQueryContext.java:264)
at io.netty.resolver.dns.DnsQueryContext.access$600(DnsQueryContext.java:51)
at io.netty.resolver.dns.DnsQueryContext$3.operationComplete(DnsQueryContext.java:255)
at io.netty.resolver.dns.DnsQueryContext$3.operationComplete(DnsQueryContext.java:252)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
at io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64)
at io.netty.channel.ChannelOutboundBuffer.safeFail(ChannelOutboundBuffer.java:754)
at io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:339)
at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:319)
at io.netty.channel.nio.AbstractNioMessageChannel.doWrite(AbstractNioMessageChannel.java:158)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:929)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:359)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:893)
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
at io.netty.channel.DefaultChannelPipeline.flush(DefaultChannelPipeline.java:916)
at io.netty.channel.AbstractChannel.flush(AbstractChannel.java:253)
at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:398)
at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:247)
at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:185)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: io.netty.resolver.dns.DnsNameResolverException: [223: /[2001:4860:4860:0:0:0:0:8844]:53] DefaultDnsQuestion(discord.com. IN A) failed to send a query '223' via UDP (no stack trace available)
Caused by: java.net.SocketException: Network is unreachable: sendto
at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:1005)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:966)
at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:889)
at io.netty.channel.socket.nio.NioDatagramChannel.doWriteMessage(NioDatagramChannel.java:297)
at io.netty.channel.nio.AbstractNioMessageChannel.doWrite(AbstractNioMessageChannel.java:143)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:929)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:359)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:893)
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
at io.netty.channel.DefaultChannelPipeline.flush(DefaultChannelPipeline.java:916)
at io.netty.channel.AbstractChannel.flush(AbstractChannel.java:253)
at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:398)
at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:247)
at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:185)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-02-12 22:07:20,200 INFO [io.quarkus] (Quarkus Main Thread) mybot stopped in 0.011s
[/code]