Giter Club home page Giter Club logo

Comments (13)

graemerocher avatar graemerocher commented on June 12, 2024 1

ok will look into it. Thanks for the feedback, in the meantime you can remove micronaut-serde-jackson and replace it with micronaut-jackson-databind and it will work.

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

I also want to point out that this seems to be the case for all client discovery on consul. I am able to run it OK on my side in dev mode. I'll be glad to show any other details. I'm going to try and run this on a windows machine right now and see if it's OS specific. however, given that it's a serde serialization error, I suspect there's a bug that broke the feature

from micronaut-discovery-client.

graemerocher avatar graemerocher commented on June 12, 2024

can you try declare @SerdeImport(Inet4Address.class) on your Application class as the error says, just out of interest

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024
/home/krickert/.sdkman/candidates/java/17.0.7-tem/bin/java -Dfile.encoding=UTF-8 -classpath /home/krickert/IdeaProjects/search_indexer/services/grpc-nlp-service/target/classes:/home/krickert/.m2/repository/io/micronaut/micronaut-discovery-core/4.1.8/micronaut-discovery-core-4.1.8.jar:/home/krickert/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-context/4.1.8/micronaut-context-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-aop/4.1.8/micronaut-aop-4.1.8.jar:/home/krickert/.m2/repository/io/projectreactor/reactor-core/3.5.10/reactor-core-3.5.10.jar:/home/krickert/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/home/krickert/.m2/repository/io/micronaut/cache/micronaut-cache-caffeine/4.0.2/micronaut-cache-caffeine-4.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-inject/4.1.8/micronaut-inject-4.1.8.jar:/home/krickert/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/home/krickert/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-core/4.1.8/micronaut-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/cache/micronaut-cache-core/4.0.2/micronaut-cache-core-4.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http/4.1.8/micronaut-http-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-context-propagation/4.1.8/micronaut-context-propagation-4.1.8.jar:/home/krickert/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.1.7/caffeine-3.1.7.jar:/home/krickert/.m2/repository/org/checkerframework/checker-qual/3.36.0/checker-qual-3.36.0.jar:/home/krickert/.m2/repository/io/micronaut/discovery/micronaut-discovery-client/4.0.1/micronaut-discovery-client-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-json-core/4.1.8/micronaut-json-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-client/4.1.8/micronaut-http-client-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-client-core/4.1.8/micronaut-http-client-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-websocket/4.1.8/micronaut-websocket-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-netty/4.1.8/micronaut-http-netty-4.1.8.jar:/home/krickert/.m2/repository/io/netty/netty-codec-http/4.1.99.Final/netty-codec-http-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec-http2/4.1.99.Final/netty-codec-http2-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-handler/4.1.99.Final/netty-handler-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-resolver/4.1.99.Final/netty-resolver-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-handler-proxy/4.1.99.Final/netty-handler-proxy-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-common/4.1.99.Final/netty-common-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-buffer/4.1.99.Final/netty-buffer-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-transport/4.1.99.Final/netty-transport-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec/4.1.99.Final/netty-codec-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec-socks/4.1.99.Final/netty-codec-socks-4.1.99.Final.jar:/home/krickert/.m2/repository/io/micronaut/validation/micronaut-validation/4.0.3/micronaut-validation-4.0.3.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-core-reactive/4.1.8/micronaut-core-reactive-4.1.8.jar:/home/krickert/.m2/repository/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/home/krickert/.m2/repository/io/micronaut/reactor/micronaut-reactor/3.0.2/micronaut-reactor-3.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-retry/4.1.8/micronaut-retry-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-runtime/4.0.1/micronaut-grpc-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-client-runtime/4.0.1/micronaut-grpc-client-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-annotation/4.0.1/micronaut-grpc-annotation-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-opentracing/4.0.1/micronaut-grpc-opentracing-4.0.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-netty/1.56.1/grpc-netty-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-core/1.56.1/grpc-core-1.56.1.jar:/home/krickert/.m2/repository/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar:/home/krickert/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23.jar:/home/krickert/.m2/repository/io/perfmark/perfmark-api/0.26.0/perfmark-api-0.26.0.jar:/home/krickert/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.99.Final/netty-transport-native-unix-common-4.1.99.Final.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-buffer-netty/4.1.8/micronaut-buffer-netty-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-server-runtime/4.0.1/micronaut-grpc-server-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-health/4.0.1/micronaut-grpc-health-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-jackson/2.2.5/micronaut-serde-jackson-2.2.5.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-jackson-core/4.1.8/micronaut-jackson-core-4.1.8.jar:/home/krickert/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar:/home/krickert/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-api/2.2.5/micronaut-serde-api-2.2.5.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-support/2.2.5/micronaut-serde-support-2.2.5.jar:/home/krickert/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/home/krickert/.m2/repository/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar:/home/krickert/.m2/repository/ch/qos/logback/logback-core/1.4.11/logback-core-1.4.11.jar:/home/krickert/.m2/repository/org/yaml/snakeyaml/2.0/snakeyaml-2.0.jar:/home/krickert/.m2/repository/io/micronaut/testresources/micronaut-test-resources-client/2.0.0/micronaut-test-resources-client-2.0.0.jar:/home/krickert/.m2/repository/io/micronaut/testresources/micronaut-test-resources-core/2.0.0/micronaut-test-resources-core-2.0.0.jar:/home/krickert/.m2/repository/org/apache/opennlp/opennlp-tools/2.3.0/opennlp-tools-2.3.0.jar:/home/krickert/IdeaProjects/search_indexer/protobuf-projects/wikisearch-model/target/classes:/home/krickert/.m2/repository/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar:/home/krickert/.m2/repository/org/apache/commons/commons-lang3/3.13.0/commons-lang3-3.13.0.jar:/home/krickert/.m2/repository/io/grpc/grpc-stub/1.56.1/grpc-stub-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-api/1.56.1/grpc-api-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-context/1.56.1/grpc-context-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-protobuf/1.56.1/grpc-protobuf-1.56.1.jar:/home/krickert/.m2/repository/com/google/api/grpc/proto-google-common-protos/2.17.0/proto-google-common-protos-2.17.0.jar:/home/krickert/.m2/repository/io/grpc/grpc-protobuf-lite/1.56.1/grpc-protobuf-lite-1.56.1.jar:/home/krickert/.m2/repository/com/google/protobuf/protobuf-java/3.23.4/protobuf-java-3.23.4.jar:/home/krickert/.m2/repository/org/testcontainers/consul/1.18.3/consul-1.18.3.jar:/home/krickert/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/home/krickert/.m2/repository/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:/home/krickert/.m2/repository/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar:/home/krickert/.m2/repository/com/google/guava/guava/32.0.1-jre/guava-32.0.1-jre.jar:/home/krickert/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/home/krickert/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/home/krickert/.m2/repository/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar com.krickert.search.service.nlp.Application
 __  __ _                                  _   
|  \/  (_) ___ _ __ ___  _ __   __ _ _   _| |_ 
| |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __|
| |  | | | (__| | | (_) | | | | (_| | |_| | |_ 
|_|  |_|_|\___|_|  \___/|_| |_|\__,_|\__,_|\__|
03:20:09.914 [main] INFO  i.m.context.DefaultBeanContext - Reading bootstrap environment configuration
03:20:12.093 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 2804ms. Server Running: http://localhost:50051
03:20:22.110 [default-nioEventLoopGroup-4-1] WARN  i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:28.148 [default-nioEventLoopGroup-4-2] WARN  i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:37.150 [default-nioEventLoopGroup-4-3] WARN  i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:39.149 [default-nioEventLoopGroup-4-4] ERROR i.m.d.registration.AutoRegistration - Error occurred during service registration with Consul: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck (io.micronaut.discovery.consul.client.v1.TTLCheck and io.micronaut.discovery.consul.client.v1.HTTPCheck are in unnamed module of loader 'app')
java.lang.ClassCastException: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck (io.micronaut.discovery.consul.client.v1.TTLCheck and io.micronaut.discovery.consul.client.v1.HTTPCheck are in unnamed module of loader 'app')
	at io.micronaut.discovery.consul.client.v1.$HTTPCheck$Introspection.dispatchOne(Unknown Source)
	at io.micronaut.inject.beans.AbstractInitializableBeanIntrospection$BeanPropertyImpl.getUnsafe(AbstractInitializableBeanIntrospection.java:856)
	at io.micronaut.serde.support.serializers.SerBean$PropSerProperty.get(SerBean.java:463)
	at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:66)
	at io.micronaut.serde.support.serializers.CustomizedIterableSerializer.serialize(CustomizedIterableSerializer.java:50)
	at io.micronaut.serde.support.serializers.CustomizedIterableSerializer.serialize(CustomizedIterableSerializer.java:32)
	at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:132)
	at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.serialize(ObjectSerializer.java:245)
	at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:114)
	at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:193)
	at io.micronaut.json.body.JsonMessageHandler.writeTo(JsonMessageHandler.java:134)
	at io.micronaut.http.body.MessageBodyWriter.writeTo(MessageBodyWriter.java:138)
	at io.micronaut.http.netty.body.NettyJsonHandler.writeTo(NettyJsonHandler.java:133)
	at io.micronaut.http.body.DynamicMessageBodyWriter.writeTo(DynamicMessageBodyWriter.java:79)
	at io.micronaut.http.client.netty.DefaultHttpClient.buildNettyRequest(DefaultHttpClient.java:1326)
	at io.micronaut.http.client.netty.DefaultHttpClient.sendRequestThroughChannel(DefaultHttpClient.java:1468)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchangeImpl$26(DefaultHttpClient.java:1102)
	at reactor.core.publisher.FluxCreate.subscribe(FluxCreate.java:95)
	at reactor.core.publisher.Flux.subscribe(Flux.java:8773)
	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195)
	at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
	at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
	at io.micronaut.http.client.netty.CancellableMonoSink.tryForward(CancellableMonoSink.java:69)
	at io.micronaut.http.client.netty.CancellableMonoSink.tryEmitValue(CancellableMonoSink.java:86)
	at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.emitPoolHandle(ConnectionManager.java:1155)
	at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.dispatch0(ConnectionManager.java:1308)
	at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.dispatch(ConnectionManager.java:1179)
	at io.micronaut.http.client.netty.PoolResizer.dispatchSafe(PoolResizer.java:169)
	at io.micronaut.http.client.netty.PoolResizer.doSomeWork(PoolResizer.java:115)
	at io.micronaut.http.client.netty.PoolResizer.dirty(PoolResizer.java:77)
	at io.micronaut.http.client.netty.PoolResizer.onNewConnectionEstablished1(PoolResizer.java:208)
	at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.init(ConnectionManager.java:1248)
	at io.micronaut.http.client.netty.ConnectionManager$Pool$2$1.channelActive(ConnectionManager.java:1038)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:262)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69)
	at io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:260)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:258)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
	at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:305)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:335)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
	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:833)

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

I'm getting a class cast exception now as well.

Couple observations now:

  1. This error is the same on a windows machine too running in a WSL environment
  2. I do have consul running, it would give a not found exception if it wasn't because port 8500 would be closed
  3. Same thing happens if you run from the jar directly

I now see a class cast exception, which I pasted above.

From what I can tell - this would be reproduceable when attempting to run in most environments. Since the instructions do say to turn of consul integration on a dev environment, I can see how that would've made it past the tests.

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024
image Not sure if this helps. I put a breakpoint to where the exception is thrown. TTLCheck is attempting to be casted to HTTPCheck. This behavior is the same on the mac.

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

I think we might be able to conclude that the discovery client doesn't register the service. I tried this with an http service example, and that too does not work.

from micronaut-discovery-client.

alvarosanchez avatar alvarosanchez commented on June 12, 2024

This looks to me like a duplicate of #385

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

Thanks for the workaround! Works fine. I also had to add micronaut-discovery-client too.. but this unblocked me. Thanks so much!!!

from micronaut-discovery-client.

sdelamo avatar sdelamo commented on June 12, 2024

I created an issue to support java.net.InetAddressin Micronaut Serialization. I am able to reproduce the java.lang.ClassCastException: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck error.

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

Is there a way to validate if the workaround breaks the health check exposing at the grpc endpoint?

https://micronaut-projects.github.io/micronaut-grpc/latest/guide/#server

Following this guide, to automatically register the health checks it asks that you add the following dependencies:

    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-services</artifactId>
    </dependency>
    <dependency>
      <groupId>io.micronaut</groupId>
      <artifactId>micronaut-management</artifactId>
    </dependency>

And the instructions say after this:

If the management dependency (io.micronaut:micronaut-management) is added, then Micronaut’s Health Endpoint can be used to expose the health status of the gRPC server.

For example, if gRPC is running then the /health endpoint will return:

{
  "status": "UP",
  "details": {
     "grpc-server": {
       "name": "your-project-name",
       "status": "UP",
       "details": {
         "host": "localhost",
         "port": 5050
       }
     }
  },
 ...
}

This used to work for me. Although consul registers the service fine (still going to test the client - but have another question about that as well)..

I'll be glad to make it a separate bug, but think it's not a bug because I suspect that it's related to this bug and I'm just missing a dependency.

When I try to hit the health check endpoint I get:

> curl http://localhost:50052/health -L
curl: (1) Received HTTP/0.9 when not allowed

And from the running application:

Oct 09, 2023 6:09:15 AM io.grpc.netty.NettyServerTransport notifyTerminated
INFO: Transport failed
io.netty.handler.codec.http2.Http2Exception: Unexpected HTTP/1.x request: GET /health 
	at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:109)
	at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:317)
	at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:247)
	at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:453)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
	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:833)

You can see this if you go to this project
https://github.com/krickert/search_indexer

Under the maven modules "services/grpc-vectorizer-service"

It's self-contained, but it is dependent on a parent project (the proto stuff) - but if need be I can make it more self-contained than it is now.

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

I believe this fixed registering the client - but I think the other direction doesn't work; whenever I try to do a consul lookup by following the directions I'll always get an exception.

Caused by: io.micronaut.http.client.exceptions.HttpClientResponseException: Client 'consul': Error decoding HTTP response body: No bean introspection available for type [class java.net.InetAddress]. Ensure the class is annotated with io.micronaut.core.annotation.Introspected
	at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.makeNormalBodyParseError(DefaultHttpClient.java:2254)
	at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.forwardResponseToPromise(DefaultHttpClient.java:2184)

This happened for all clients you can try

from micronaut-discovery-client.

krickert avatar krickert commented on June 12, 2024

Checked the latest snapshot out and everything is working. The workaround (I think?) breaks the client. Downloading the snapshot works. will use the snapshot for now until the release is out.

from micronaut-discovery-client.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.