vertx-pj/mcp-server-weather.log
2025-03-19 14:23:16 +08:00

349 lines
60 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2025-03-17T15:44:12.716+08:00 INFO 102932 --- [mcp-server-weather] [main] c.b.m.s.w.McpServerSimpleApplication : Starting McpServerSimpleApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 102932 (D:\WorkSpace\github\MCP\mcp-server-weather\target\mcp-server-weather-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T15:44:12.719+08:00 INFO 102932 --- [mcp-server-weather] [main] c.b.m.s.w.McpServerSimpleApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T15:44:13.441+08:00 INFO 102932 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T15:44:13.553+08:00 INFO 102932 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T15:44:13.672+08:00 INFO 102932 --- [mcp-server-weather] [main] c.b.m.s.w.McpServerSimpleApplication : Started McpServerSimpleApplication in 1.46 seconds (process running for 1.9)
2025-03-17T15:44:13.677+08:00 INFO 102932 --- [mcp-server-weather] [main] c.b.m.s.w.McpServerSimpleApplication : check api key ...
2025-03-17T15:44:13.677+08:00 INFO 102932 --- [mcp-server-weather] [main] c.b.m.s.w.McpServerSimpleApplication : weather api key is 56400cb6813e4be9802faa4920c5fa92
2025-03-17T15:44:18.247+08:00 INFO 102932 --- [mcp-server-weather] [boundedElastic-1] c.b.m.s.weather.service.WeatherService : 开始获取天气城市beijing
2025-03-17T15:44:20.240+08:00 INFO 102932 --- [mcp-server-weather] [boundedElastic-1] c.b.m.s.weather.service.WeatherService : 城市搜索接口返回结果:{"code":"200","location":[{"name":"北京","id":"101010100","lat":"39.90499","lon":"116.40529","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"10","fxLink":"https://www.qweather.com/weather/beijing-101010100.html"},{"name":"海淀","id":"101010200","lat":"39.95607","lon":"116.31032","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/haidian-101010200.html"},{"name":"朝阳","id":"101010300","lat":"39.92149","lon":"116.48641","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/chaoyang-101010300.html"},{"name":"顺义","id":"101010400","lat":"40.12894","lon":"116.65353","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/shunyi-101010400.html"},{"name":"怀柔","id":"101010500","lat":"40.32427","lon":"116.63712","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/huairou-101010500.html"},{"name":"通州","id":"101010600","lat":"39.90249","lon":"116.65860","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/tongzhou-101010600.html"},{"name":"昌平","id":"101010700","lat":"40.21809","lon":"116.23591","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/changping-101010700.html"},{"name":"延庆","id":"101010800","lat":"40.46532","lon":"115.98501","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/yanqing-101010800.html"},{"name":"丰台","id":"101010900","lat":"39.86364","lon":"116.28696","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"25","fxLink":"https://www.qweather.com/weather/fengtai-101010900.html"},{"name":"石景山","id":"101011000","lat":"39.91460","lon":"116.19544","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"35","fxLink":"https://www.qweather.com/weather/shijingshan-101011000.html"}],"refer":{"sources":["QWeather"],"license":["QWeather Developers License"]}}
2025-03-17T15:44:20.253+08:00 INFO 102932 --- [mcp-server-weather] [boundedElastic-1] c.b.m.s.weather.service.WeatherService : 城市的locationId为101010100
2025-03-17T15:44:23.372+08:00 INFO 102932 --- [mcp-server-weather] [boundedElastic-1] c.b.m.s.weather.service.WeatherService : 天气接口返回结果:{"code":"200","updateTime":"2025-03-17T15:42+08:00","fxLink":"https://www.qweather.com/weather/beijing-101010100.html","now":{"obsTime":"2025-03-17T15:41+08:00","temp":"8","feelsLike":"2","icon":"101","text":"多云","wind360":"315","windDir":"西北风","windScale":"4","windSpeed":"21","humidity":"13","precip":"0.0","pressure":"1017","vis":"27","cloud":"91","dew":"-16"},"refer":{"sources":["QWeather"],"license":["CC BY-SA 4.0"]}}
2025-03-17T15:52:27.923+08:00 INFO 104268 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 104268 (D:\WorkSpace\aikrai\mcp-demo\build\libs\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T15:52:27.925+08:00 INFO 104268 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T15:52:28.448+08:00 INFO 104268 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T15:52:28.747+08:00 INFO 104268 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T15:52:28.848+08:00 INFO 104268 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T15:52:29.013+08:00 INFO 104268 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.634 seconds (process running for 2.12)
2025-03-17T15:52:29.015+08:00 INFO 104268 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T15:52:35.035+08:00 INFO 104268 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T15:52:37.254+08:00 INFO 104268 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:{"code":"200","location":[{"name":"北京","id":"101010100","lat":"39.90499","lon":"116.40529","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"10","fxLink":"https://www.qweather.com/weather/beijing-101010100.html"},{"name":"海淀","id":"101010200","lat":"39.95607","lon":"116.31032","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/haidian-101010200.html"},{"name":"朝阳","id":"101010300","lat":"39.92149","lon":"116.48641","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/chaoyang-101010300.html"},{"name":"顺义","id":"101010400","lat":"40.12894","lon":"116.65353","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/shunyi-101010400.html"},{"name":"怀柔","id":"101010500","lat":"40.32427","lon":"116.63712","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/huairou-101010500.html"},{"name":"通州","id":"101010600","lat":"39.90249","lon":"116.65860","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/tongzhou-101010600.html"},{"name":"昌平","id":"101010700","lat":"40.21809","lon":"116.23591","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/changping-101010700.html"},{"name":"延庆","id":"101010800","lat":"40.46532","lon":"115.98501","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/yanqing-101010800.html"},{"name":"丰台","id":"101010900","lat":"39.86364","lon":"116.28696","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"25","fxLink":"https://www.qweather.com/weather/fengtai-101010900.html"},{"name":"石景山","id":"101011000","lat":"39.91460","lon":"116.19544","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"35","fxLink":"https://www.qweather.com/weather/shijingshan-101011000.html"}],"refer":{"sources":["QWeather"],"license":["QWeather Developers License"]}}
2025-03-17T15:52:37.263+08:00 INFO 104268 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市的locationId为101010100
2025-03-17T15:52:40.306+08:00 INFO 104268 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 天气接口返回结果:{"code":"200","updateTime":"2025-03-17T15:51+08:00","fxLink":"https://www.qweather.com/weather/beijing-101010100.html","now":{"obsTime":"2025-03-17T15:48+08:00","temp":"9","feelsLike":"2","icon":"101","text":"多云","wind360":"315","windDir":"西北风","windScale":"4","windSpeed":"27","humidity":"14","precip":"0.0","pressure":"1017","vis":"30","cloud":"91","dew":"-16"},"refer":{"sources":["QWeather"],"license":["CC BY-SA 4.0"]}}
2025-03-17T15:54:20.896+08:00 INFO 8828 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 8828 (D:\WorkSpace\aikrai\mcp-demo\build\libs\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T15:54:20.899+08:00 INFO 8828 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T15:54:21.398+08:00 INFO 8828 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T15:54:21.701+08:00 INFO 8828 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T15:54:21.812+08:00 INFO 8828 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T15:54:21.951+08:00 INFO 8828 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.576 seconds (process running for 2.033)
2025-03-17T15:54:21.953+08:00 INFO 8828 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T15:54:25.253+08:00 INFO 8828 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T15:54:27.842+08:00 INFO 8828 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:{"code":"200","location":[{"name":"北京","id":"101010100","lat":"39.90499","lon":"116.40529","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"10","fxLink":"https://www.qweather.com/weather/beijing-101010100.html"},{"name":"海淀","id":"101010200","lat":"39.95607","lon":"116.31032","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/haidian-101010200.html"},{"name":"朝阳","id":"101010300","lat":"39.92149","lon":"116.48641","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"15","fxLink":"https://www.qweather.com/weather/chaoyang-101010300.html"},{"name":"顺义","id":"101010400","lat":"40.12894","lon":"116.65353","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/shunyi-101010400.html"},{"name":"怀柔","id":"101010500","lat":"40.32427","lon":"116.63712","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/huairou-101010500.html"},{"name":"通州","id":"101010600","lat":"39.90249","lon":"116.65860","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/tongzhou-101010600.html"},{"name":"昌平","id":"101010700","lat":"40.21809","lon":"116.23591","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"23","fxLink":"https://www.qweather.com/weather/changping-101010700.html"},{"name":"延庆","id":"101010800","lat":"40.46532","lon":"115.98501","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"33","fxLink":"https://www.qweather.com/weather/yanqing-101010800.html"},{"name":"丰台","id":"101010900","lat":"39.86364","lon":"116.28696","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"25","fxLink":"https://www.qweather.com/weather/fengtai-101010900.html"},{"name":"石景山","id":"101011000","lat":"39.91460","lon":"116.19544","adm2":"北京","adm1":"北京市","country":"中国","tz":"Asia/Shanghai","utcOffset":"+08:00","isDst":"0","type":"city","rank":"35","fxLink":"https://www.qweather.com/weather/shijingshan-101011000.html"}],"refer":{"sources":["QWeather"],"license":["QWeather Developers License"]}}
2025-03-17T15:54:27.851+08:00 INFO 8828 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市的locationId为101010100
2025-03-17T15:54:31.027+08:00 INFO 8828 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 天气接口返回结果:{"code":"200","updateTime":"2025-03-17T15:51+08:00","fxLink":"https://www.qweather.com/weather/beijing-101010100.html","now":{"obsTime":"2025-03-17T15:48+08:00","temp":"9","feelsLike":"2","icon":"101","text":"多云","wind360":"315","windDir":"西北风","windScale":"4","windSpeed":"27","humidity":"14","precip":"0.0","pressure":"1017","vis":"30","cloud":"91","dew":"-16"},"refer":{"sources":["QWeather"],"license":["CC BY-SA 4.0"]}}
2025-03-17T16:14:16.796+08:00 INFO 111796 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 111796 (D:\WorkSpace\aikrai\mcp-demo\build\libs\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T16:14:16.800+08:00 INFO 111796 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T16:14:17.332+08:00 INFO 111796 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T16:14:17.646+08:00 INFO 111796 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T16:14:17.747+08:00 INFO 111796 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T16:14:17.915+08:00 INFO 111796 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.7 seconds (process running for 2.201)
2025-03-17T16:14:17.918+08:00 INFO 111796 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T16:14:22.513+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:14:22.872+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:14:22.873+08:00 ERROR 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:14:24.316+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:14:24.364+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:14:24.365+08:00 ERROR 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:14:26.189+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:14:26.229+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:14:26.230+08:00 ERROR 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:14:26.232+08:00 INFO 111796 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijng
2025-03-17T16:19:15.917+08:00 INFO 107320 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 107320 (D:\WorkSpace\aikrai\mcp-demo\build\libs\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T16:19:15.919+08:00 INFO 107320 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T16:19:16.425+08:00 INFO 107320 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T16:19:16.759+08:00 INFO 107320 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T16:19:16.861+08:00 INFO 107320 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T16:19:17.011+08:00 INFO 107320 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.576 seconds (process running for 2.044)
2025-03-17T16:19:17.014+08:00 INFO 107320 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T16:19:19.456+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:19:19.815+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:19:19.815+08:00 ERROR 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:19:21.627+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijng
2025-03-17T16:19:22.875+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:19:22.918+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:19:22.918+08:00 ERROR 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:19:24.176+08:00 INFO 107320 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijng
2025-03-17T16:27:22.095+08:00 INFO 113860 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 113860 (D:\WorkSpace\aikrai\mcp-demo\build\libs\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T16:27:22.098+08:00 INFO 113860 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T16:27:22.623+08:00 INFO 113860 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T16:27:22.967+08:00 INFO 113860 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T16:27:23.075+08:00 INFO 113860 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T16:27:23.235+08:00 INFO 113860 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.684 seconds (process running for 2.179)
2025-03-17T16:27:23.241+08:00 INFO 113860 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T16:27:27.008+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:27:27.350+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:27:27.350+08:00 ERROR 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:27:28.617+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:27:28.662+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:27:28.662+08:00 ERROR 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T16:27:29.763+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气城市beijing
2025-03-17T16:27:29.820+08:00 INFO 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:????n?0?W?reM?q??v??h????u??tU???$.Hl?????4A?"?)?[?d]V???????I?d????3???5??G%??|22?=????????-Y????Re?k??n??Ho????
? m???;Tl?q2{?R^ Uv1??|??R?HE?#N?|*:>?*K?A??t?{?if????(M?m9???q9TQH???{U??r?g?/e?j????<0*}?^Ы???????S?i???5?9???t9????a??8???]?C
??T??inr|?|}r?s??pau8[?!???`H?偶x\?/???x????5b#U??R??!???\????a?b?o?V%6KI
??< ?Z>???1??L???XJaa??!?
?? D???=??qr?\?GC_?r????V?x??????w???????d?Zqt??\?M?A%@J?UI?8?-??y??\?p???D?b
?*p?r??6Io??????????Grq???C?^A,L?&b?6?UA?D"?;?E?? $??J?@???Yh4GF??"uh5>?y?P?]?1????{??A???????`<???7!
2025-03-17T16:27:29.820+08:00 ERROR 113860 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 解析城市搜索API响应失败
com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2584) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2610) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:772) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:2508) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:673) ~[jackson-core-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4946) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3281) ~[jackson-databind-2.18.2.jar!/:2.18.2]
at com.demo.service.WeatherService.getWeather(WeatherService.java:104) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.ai.tool.method.MethodToolCallback.callMethod(MethodToolCallback.java:158) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:108) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.tool.method.MethodToolCallback.call(MethodToolCallback.java:93) ~[spring-ai-core-1.0.0-M6.jar!/:1.0.0-M6]
at org.springframework.ai.mcp.McpToolUtils.lambda$toSyncToolRegistration$0(McpToolUtils.java:113) ~[spring-ai-mcp-1.0.0-M6.jar!/:1.0.0-M6]
at io.modelcontextprotocol.server.McpServerFeatures$AsyncToolRegistration.lambda$fromSync$0(McpServerFeatures.java:221) ~[mcp-0.7.0.jar!/:0.7.0]
at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.7.3.jar!/:3.7.3]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.7.3.jar!/:3.7.3]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-03-17T17:50:44.250+08:00 INFO 45324 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Starting McpDemoApplication v0.0.1-SNAPSHOT using Java 17.0.10 with PID 45324 (D:\WorkSpace\aikrai\vertx-pj\vertx-demo\src\main\resources\mcp-demo-0.0.1-SNAPSHOT.jar started by AiKrai in D:\WorkSpace\aikrai\vertx-pj)
2025-03-17T17:50:44.252+08:00 INFO 45324 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-17T17:50:44.983+08:00 INFO 45324 --- [mcp-server-weather] [main] com.demo.service.WeatherService : 天气 API Key 配置验证通过
2025-03-17T17:50:45.286+08:00 INFO 45324 --- [mcp-server-weather] [main] o.s.a.a.m.s.MpcServerAutoConfiguration : Registered tools1 notification: true
2025-03-17T17:50:45.340+08:00 INFO 45324 --- [mcp-server-weather] [pool-2-thread-1] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=RootCapabilities[listChanged=false], sampling=null], Info: Implementation[name=langchain4j, version=1.0]
2025-03-17T17:50:45.467+08:00 INFO 45324 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Started McpDemoApplication in 1.707 seconds (process running for 2.175)
2025-03-17T17:50:45.470+08:00 INFO 45324 --- [mcp-server-weather] [main] com.demo.McpDemoApplication : Server running
2025-03-17T17:50:48.377+08:00 INFO 45324 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 开始获取天气,城市:鍖椾含
2025-03-17T17:50:48.743+08:00 INFO 45324 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市搜索接口返回结果:{"code":"200","location":[{"name":"Актобе","id":"477C6","lat":"50.30000","lon":"57.16667","adm2":"Актобе","adm1":"Актюбинская область","country":"Казахстан","tz":"Asia/Aqtobe","utcOffset":"+05:00","isDst":"0","type":"city","rank":"31","fxLink":"https://www.qweather.com/weather/aktobe-477C6.html"},{"name":"Abéché","id":"53314","lat":"13.83306","lon":"20.83472","adm2":"Abéché","adm1":"Ouadda?","country":"Tchad","tz":"Africa/Ndjamena","utcOffset":"+01:00","isDst":"0","type":"city","rank":"41","fxLink":"https://www.qweather.com/weather/abéché-53314.html"},{"name":"Abánades","id":"446FB","lat":"40.89400","lon":"-2.48500","adm2":"Abánades","adm1":"Castilla-La Mancha","country":"Espa?a","tz":"Europe/Madrid","utcOffset":"+01:00","isDst":"0","type":"city","rank":"82","fxLink":"https://www.qweather.com/weather/abánades-446FB.html"},{"name":"??? ???","id":"8EFB5","lat":"24.46900","lon":"54.35800","adm2":"??? ???","adm1":"??????","country":"???????? ??????? ???????","tz":"Asia/Dubai","utcOffset":"+04:00","isDst":"0","type":"city","rank":"30","fxLink":"https://www.qweather.com/weather/abu-dhabi-8EFB5.html"},{"name":"Be?k","id":"3BBFF","lat":"50.13100","lon":"18.71000","adm2":"Be?k","adm1":"?l?skie","country":"Polska","tz":"Europe/Warsaw","utcOffset":"+01:00","isDst":"0","type":"city","rank":"85","fxLink":"https://www.qweather.com/weather/be?k-3BBFF.html"},{"name":"Fenoarivo Be","id":"46390","lat":"-18.43300","lon":"46.56700","adm2":"Fenoarivo Be","adm1":"Antananarivo","country":"Madagascar","tz":"Indian/Antananarivo","utcOffset":"+03:00","isDst":"0","type":"city","rank":"600","fxLink":"https://www.qweather.com/weather/fenoarivo-be-46390.html"},{"name":"Be?tepe","id":"88E0","lat":"45.08333","lon":"29.01667","adm2":"Be?tepe","adm1":"Tulcea County","country":"Romania","tz":"Europe/Bucharest","utcOffset":"+02:00","isDst":"0","type":"city","rank":"85","fxLink":"https://www.qweather.com/weather/be?tepe-88E0.html"},{"name":"D?be Wielkie","id":"80898","lat":"52.20000","lon":"21.42100","adm2":"D?be Wielkie","adm1":"Mazowieckie","country":"Polska","tz":"Europe/Warsaw","utcOffset":"+01:00","isDst":"0","type":"city","rank":"85","fxLink":"https://www.qweather.com/weather/d?be-wielkie-80898.html"},{"name":"神戸市","id":"27C3F","lat":"34.69200","lon":"135.18800","adm2":"神戸市","adm1":"兵庫県","country":"日本","tz":"Asia/Tokyo","utcOffset":"+09:00","isDst":"0","type":"city","rank":"21","fxLink":"https://www.qweather.com/weather/kobe-shi-27C3F.html"},{"name":"C?be?ti","id":"C2AB3","lat":"46.76670","lon":"22.36670","adm2":"C?be?ti","adm1":"Bihor County","country":"Romania","tz":"Europe/Bucharest","utcOffset":"+02:00","isDst":"0","type":"city","rank":"85","fxLink":"https://www.qweather.com/weather/c?be?ti-C2AB3.html"}],"refer":{"sources":["QWeather"],"license":["QWeather Developers License"]}}
2025-03-17T17:50:48.745+08:00 INFO 45324 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 城市的locationId为477C6
2025-03-17T17:50:48.897+08:00 INFO 45324 --- [mcp-server-weather] [boundedElastic-1] com.demo.service.WeatherService : 天气接口返回结果:{"code":"200","updateTime":"2025-03-17T14:45+05:00","fxLink":"https://www.qweather.com/weather/aktobe-477C6.html","now":{"obsTime":"2025-03-17T14:26+05:00","temp":"9","feelsLike":"3","icon":"100","text":"晴","wind360":"225","windDir":"西南风","windScale":"4","windSpeed":"28","humidity":"61","precip":"0.0","pressure":"1008","vis":"16","cloud":"0","dew":"2"},"refer":{"sources":["QWeather"],"license":["CC BY-SA 4.0"]}}