AOT health chek 404 Unknown check ID for 4.2.1
spring: application: name: demo cloud: consul: discovery: preferIpAddress: true heartbeat: enabled: true
2025-04-02T22:59:09.530+08:00 INFO 7280 --- [demo] [ main] com.example.demo.DemoApplication : Starting AOT-processed DemoApplication using Java 22.0.1 with PID 7280 (D:\kn\demo\build\native\nativeCompile\demo.exe started by wdubaiyu in D:\kn\demo\build\native\nativeCompile)
2025-04-02T22:59:09.530+08:00 INFO 7280 --- [demo] [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-04-02T22:59:09.531+08:00 INFO 7280 --- [demo] [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=7389954d-47ba-315d-8456-723ce320eccc
2025-04-02T22:59:09.557+08:00 INFO 7280 --- [demo] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)
2025-04-02T22:59:09.558+08:00 INFO 7280 --- [demo] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025-04-02T22:59:09.558+08:00 INFO 7280 --- [demo] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.39]
2025-04-02T22:59:09.563+08:00 INFO 7280 --- [demo] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2025-04-02T22:59:09.563+08:00 INFO 7280 --- [demo] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 33 ms
2025-04-02T22:59:10.582+08:00 INFO 7280 --- [demo] [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2025-04-02T22:59:11.599+08:00 INFO 7280 --- [demo] [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2025-04-02T22:59:11.607+08:00 WARN 7280 --- [demo] [ main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working wit
h the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2025-04-02T22:59:11.610+08:00 INFO 7280 --- [demo] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'
2025-04-02T22:59:11.611+08:00 INFO 7280 --- [demo] [ main] o.s.c.c.s.ConsulServiceRegistry : Registering service with consul: NewService{id='de
mo', name='demo', tags=[], address='localhost', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell=
'null', interval='null', ttl='30s', http='null', method='null', header=null, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null}
2025-04-02T22:59:11.617+08:00 ERROR 7280 --- [demo] [pool-5-thread-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
com.ecwid.consul.v1.OperationException: OperationException(statusCode=404, statusMessage='Not Found', statusContent='Unknown check ID "service:demo". Ensure that the check ID is passed, not the check name.') at com.ecwid.consul.v1.agent.AgentConsulClient.agentCheckPass(AgentConsulClient.java:211) ~[demo.exe:na] at com.ecwid.consul.v1.ConsulClient.agentCheckPass(ConsulClient.java:270) ~[demo.exe:na] at org.springframework.cloud.consul.discovery.TtlScheduler$ConsulHeartbeatTask.lambda$run$0(TtlScheduler.java:131) ~[na:na] at org.springframework.cloud.consul.discovery.TtlScheduler$ConsulHeartbeatTask.possiblyReregisterIfFails(TtlScheduler.java:156) ~[na:na] at org.springframework.cloud.consul.discovery.TtlScheduler$ConsulHeartbeatTask.run(TtlScheduler.java:131) ~[na:na] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[na:na] at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[na:na] at [email protected]/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358) ~[demo.exe:na] at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[na:na] at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[demo.exe:na] at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] at [email protected]/java.lang.Thread.runWith(Thread.java:1583) ~[demo.exe:na] at [email protected]/java.lang.Thread.run(Thread.java:1570) ~[demo.exe:na] at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:853) ~[demo.exe:na] at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:829) ~[demo.exe:na]
curl \http://127.0.0.1:8500/v1/agent/checks result '{}' Health check not registered
GSON serialize NewService.class ,lost Check.class
com.ecwid.consul.v1.agent.agentServiceRegister(NewService newService, String token)
UrlParameters tokenParam = token != null ? new SingleUrlParameters("token", token) : null; String json = GsonFactory.getGson().toJson(newService); System.out.println("agentServiceRegister json = " + json); HttpResponse httpResponse = this.rawClient.makePutRequest("/v1/agent/service/register", json, new UrlParameters[]{tokenParam}); if (httpResponse.getStatusCode() == 200) { return new Response((Object)null, httpResponse); } else { throw new OperationException(httpResponse); }
in aot