-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
Describe the bug
I'm trying to use Spring boot's Client to connect to a Server written in Python with ASYNC mode, but I can't start a Spring Boot Application for any reason.
python mcp version: 1.7.1
python version: 3.12
spring boot version: 3.4.5
spring mcp client version: 1.0.0-M6
spring boot platform: webflux
java version: 21
kotlin version: 2.0.21
To Reproduce
Steps to reproduce the behavior:
- Shut down the Java Server on port 8001
- Open the Python Server on port 8001
- Start the Spring Boot Applicaion
- I see a long list of errors coming from Python Server
- The Spring Boot Applicaion failed to start after 20 seconds
Expected behavior
The system time can be obtained through LLM normally
Screenshots
none.
Desktop (please complete the following information):
- OS: Windows 11
- Browser: Microsoft Edge
- Version: latest
Additional context
I just made this very simple function.
Server:
@Service
public class McpToolsService {
@Tool(description = "Get the system time.")
String getTime(String dummy){
// dummy: The Java SDK Client takes NullPointerException, so there is at least one argument
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
}
import time
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tool", port=8001)
@mcp.tool(description="Get the system time.")
async def get_time(dummy: str) -> str:
# dummy: The Java SDK Client takes NullPointerException, so there is at least one argument
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
mcp.run(transport='sse')
Client:
@Service
class MCPClientService{
public MCPClientService(ChatClient.Builder builder, AsyncMcpToolCallbackProvider provider){
// Pseudo-code, the actual call to 'Builder.defaultTools(List<ToolCallback> toolCallbacks)`
this.chatClient = builder.defaultTools(provider.getToolCallbacks()).build()
}
private ChatClient chatClient;
}
Here is spring boot's applicaition.yaml
spring:
ai:
openai:
base-url: "http://localhost:8000/"
api-key: "123456"
chat:
options:
model: "qwen2.5-7b"
mcp:
client:
type: ASYNC
toolcallback:
enabled: true
sse:
connections:
demo-tool:
url: "http://localhost:8001"
Python Server log
F:\FooBar\Python\mcp-server\.venv\Scripts\python.exe F:\FooBar\Python\mcp-server\main.py Using proactor: IocpProactor SseServerTransport initialized with endpoint: /messages/ INFO: Started server process [36664] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit) WARNING: Unsupported upgrade request. Setting up SSE connection Created new session with ID: 3075b9e3-1eaf-49e4-ac79-4a00aa30622b Starting SSE response task Yielding read and write streams Starting SSE writer Sent endpoint event: /messages/?session_id=3075b9e31eaf49e4ac794a00aa30622b chunk: b'event: endpoint\r\ndata: /messages/?session_id=3075b9e31eaf49e4ac794a00aa30622b\r\n\r\n' INFO: 127.0.0.1:60422 - "GET /sse HTTP/1.1" 200 OK Setting up SSE connection Created new session with ID: 4549bad8-f378-4936-a9bc-c4c7b4964eae Starting SSE response task Yielding read and write streams Starting SSE writer Sent endpoint event: /messages/?session_id=4549bad8f3784936a9bcc4c7b4964eae chunk: b'event: endpoint\r\ndata: /messages/?session_id=4549bad8f3784936a9bcc4c7b4964eae\r\n\r\n' INFO: 127.0.0.1:60423 - "GET /sse HTTP/1.1" 200 OK INFO: 127.0.0.1:60426 - "POST /messages/?session_id=4549bad8f3784936a9bcc4c7b4964eae HTTP/1.1" 202 Accepted Handling POST message Parsed session ID: 4549bad8-f378-4936-a9bc-c4c7b4964eae Received JSON: b'{"jsonrpc":"2.0","method":"tools/list","id":"50307350-1","params":{}}' Validated client message: root=JSONRPCRequest(method='tools/list', params={}, jsonrpc='2.0', id='50307350-1') Sending message to writer: root=JSONRPCRequest(method='tools/list', params={}, jsonrpc='2.0', id='50307350-1') Got event: http.disconnect. Stop streaming. ERROR: Exception in ASGI application + Exception Group Traceback (most recent call last): | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 403, in run_asgi | result = await app( # type: ignore[func-returns-value] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__ | return await self.app(scope, receive, send) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\applications.py", line 112, in __call__ | await self.middleware_stack(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__ | raise exc | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__ | await self.app(scope, receive, _send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__ | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app | raise exc | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app | await app(scope, receive, sender) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\routing.py", line 714, in __call__ | await self.middleware_stack(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\routing.py", line 734, in app | await route.handle(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle | await self.app(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\routing.py", line 76, in app | await wrap_app_handling_exceptions(app, request)(scope, receive, send) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app | raise exc | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app | await app(scope, receive, sender) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\starlette\routing.py", line 73, in app | response = await f(request) | ^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\fastmcp\server.py", line 648, in sse_endpoint | await handle_sse(request.scope, request.receive, request._send) # type: ignore[reportPrivateUsage] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\fastmcp\server.py", line 582, in handle_sse | async with sse.connect_sse( | File "D:\Program Files\Python312\Lib\contextlib.py", line 231, in __aexit__ | await self.gen.athrow(value) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\sse.py", line 123, in connect_sse | async with anyio.create_task_group() as tg: | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 772, in __aexit__ | raise BaseExceptionGroup( | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) +-+---------------- 1 ---------------- | Exception Group Traceback (most recent call last): | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\sse.py", line 131, in connect_sse | yield (read_stream, write_stream) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\fastmcp\server.py", line 587, in handle_sse | await self._mcp_server.run( | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\lowlevel\server.py", line 483, in run | async with AsyncExitStack() as stack: | File "D:\Program Files\Python312\Lib\contextlib.py", line 754, in __aexit__ | raise exc_details[1] | File "D:\Program Files\Python312\Lib\contextlib.py", line 737, in __aexit__ | cb_suppress = await cb(*exc_details) | ^^^^^^^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\shared\session.py", line 209, in __aexit__ | return await self._task_group.__aexit__(exc_type, exc_val, exc_tb) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 772, in __aexit__ | raise BaseExceptionGroup( | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) +-+---------------- 1 ---------------- | Traceback (most recent call last): | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\shared\session.py", line 331, in _receive_loop | await self._received_request(responder) | File "F:\FooBar\Python\mcp-server\.venv\Lib\site-packages\mcp\server\session.py", line 163, in _received_request | raise RuntimeError( | RuntimeError: Received request before initialization was complete +------------------------------------ ping: b': ping - 2025-05-09 00:34:24.772913+00:00\r\n\r\n' Got event: http.disconnect. Stop streaming.
Java Client log
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////:: Spring Boot :: (v3.4.5)
2025-05-08 15:11:14.509 INFO com.foo.bar.AiWebApplication$Companion : Starting AiWebApplication.Companion using Java 21.0.4 with PID 32156 (F:\FooBar\Kotlin\ai-lib-backend\build\classes\kotlin\main started by 20988 in F:\FooBar\Kotlin\ai-lib-backend)
2025-05-08 15:11:14.511 INFO com.foo.bar.AiWebApplication$Companion : The following 1 profile is active: "dev"
2025-05-08 15:11:14.681 INFO .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2025-05-08 15:11:14.681 INFO .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
ebean-enhance> cls: io/micrometer/core/instrument/binder/kafka/KafkaMetrics msg: defaulted common supertype for type1:org/apache/kafka/common/MetricName type2:java/util/Iterator due to err:java.lang.IllegalArgumentException: java.io.IOException: Class not found
ebean-enhance> cls: io/micrometer/core/instrument/binder/kafka/KafkaMetrics msg: defaulted common supertype for type1:org/apache/kafka/common/MetricName type2:java/lang/Object due to err:java.lang.IllegalArgumentException: java.io.IOException: Class not found
ebean-enhance> cls: io/micrometer/core/instrument/binder/kafka/KafkaMetrics msg: defaulted common supertype for type1:org/apache/kafka/common/MetricName type2:java/util/Iterator due to err:java.lang.IllegalArgumentException: java.io.IOException: Class not found
ebean-enhance> cls: io/micrometer/core/instrument/binder/kafka/KafkaMetrics msg: defaulted common supertype for type1:org/apache/kafka/common/MetricName type2:java/lang/Object due to err:java.lang.IllegalArgumentException: java.io.IOException: Class not found
2025-05-08 15:11:37.325 WARN onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'MCPClientController': Unsatisfied dependency expressed through field 'service': Error creating bean with name 'MCPClientService' defined in file [F:\FooBar\Kotlin\ai-lib-backend\build\classes\kotlin\main\com\zxce\ai\service\ai\MCPClientService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'chatClientBuilder' defined in class path resource [org/springframework/ai/autoconfigure/chat/client/ChatClientAutoConfiguration.class]: Unsatisfied dependency expressed through method 'chatClientBuilder' parameter 1: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 4: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
2025-05-08 15:11:37.334 INFO .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2025-05-08 15:11:37.356 ERROR o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'MCPClientController': Unsatisfied dependency expressed through field 'service': Error creating bean with name 'MCPClientService' defined in file [F:\FooBar\Kotlin\ai-lib-backend\build\classes\kotlin\main\com\zxce\ai\service\ai\MCPClientService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'chatClientBuilder' defined in class path resource [org/springframework/ai/autoconfigure/chat/client/ChatClientAutoConfiguration.class]: Unsatisfied dependency expressed through method 'chatClientBuilder' parameter 1: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 4: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:788)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:768)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:146)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:509)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1451)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:606)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1221)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1187)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1122)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351)
at com.foo.bar.AiWebApplication$Companion.main(AiWebApplication.kt:21)
at com.foo.bar.AiWebApplication.main(AiWebApplication.kt)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'MCPClientService' defined in file [F:\FooBar\Kotlin\ai-lib-backend\build\classes\kotlin\main\com\zxce\ai\service\ai\MCPClientService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'chatClientBuilder' defined in class path resource [org/springframework/ai/autoconfigure/chat/client/ChatClientAutoConfiguration.class]: Unsatisfied dependency expressed through method 'chatClientBuilder' parameter 1: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 4: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1387)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1224)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1739)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:785)
... 26 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'chatClientBuilder' defined in class path resource [org/springframework/ai/autoconfigure/chat/client/ChatClientAutoConfiguration.class]: Unsatisfied dependency expressed through method 'chatClientBuilder' parameter 1: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 4: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1197)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:357)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1739)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 39 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 4: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1197)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1739)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 51 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'toolCallingManager' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Unsatisfied dependency expressed through method 'toolCallingManager' parameter 0: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1197)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1681)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 65 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'toolCallbackResolver' defined in class path resource [org/springframework/ai/autoconfigure/chat/model/ToolCallingAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1197)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1681)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 78 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.ai.tool.resolution.ToolCallbackResolver]: Factory method 'toolCallbackResolver' threw exception with message: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:199)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:88)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:168)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 91 common frames omitted
Caused by: reactor.core.Exceptions$ReactiveException: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at reactor.core.Exceptions.propagate(Exceptions.java:410)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:102)
at reactor.core.publisher.Mono.block(Mono.java:1779)
at org.springframework.ai.mcp.AsyncMcpToolCallbackProvider.getToolCallbacks(AsyncMcpToolCallbackProvider.java:121)
at org.springframework.ai.mcp.AsyncMcpToolCallbackProvider.getToolCallbacks(AsyncMcpToolCallbackProvider.java:72)
at org.springframework.ai.autoconfigure.chat.model.ToolCallingAutoConfiguration.lambda$toolCallbackResolver$0(ToolCallingAutoConfiguration.java:58)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.springframework.ai.autoconfigure.chat.model.ToolCallingAutoConfiguration.toolCallbackResolver(ToolCallingAutoConfiguration.java:58)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:171)
... 94 common frames omitted
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104)
... 110 common frames omitted
Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'source(MonoCreate)' (and no fallback has been configured)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:281)
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:420)
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)The process has terminated; the exit code is 0