From cbdf476e7bfaf9c0a942b8370aee358fb06e8acb Mon Sep 17 00:00:00 2001 From: CodeCaster Date: Fri, 13 Jun 2025 20:08:27 +0800 Subject: [PATCH] fix: An HTTP handler group with the same name could be registered repeatedly --- .../fel/tool/support/HttpClientTestController.java | 2 +- .../support/http/server/controller/TestController.java | 2 +- .../fit/http/server/dispatch/DefaultHttpDispatcher.java | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/HttpClientTestController.java b/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/HttpClientTestController.java index 2a776d011..30de0f632 100644 --- a/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/HttpClientTestController.java +++ b/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/HttpClientTestController.java @@ -34,7 +34,7 @@ * @since 2024-06-15 */ @Component -@RequestMapping(group = "Test") +@RequestMapping(group = "http-tool-test") public class HttpClientTestController { /** * 表示返回值为 {@link Map} 的 HTTP 服务端接口。 diff --git a/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/http/server/controller/TestController.java b/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/http/server/controller/TestController.java index 53bd39cfd..59ad4e6bc 100644 --- a/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/http/server/controller/TestController.java +++ b/framework/fel/java/services/tool-service/src/test/java/modelengine/fel/tool/support/http/server/controller/TestController.java @@ -27,7 +27,7 @@ * @since 2024-06-17 */ @Component -@RequestMapping(group = "Test") +@RequestMapping(group = "http-client-test") public class TestController { /** * 用于测试验证 Http 服务端各个注解是否正常 diff --git a/framework/fit/java/fit-builtin/services/fit-http-classic/definition/src/main/java/modelengine/fit/http/server/dispatch/DefaultHttpDispatcher.java b/framework/fit/java/fit-builtin/services/fit-http-classic/definition/src/main/java/modelengine/fit/http/server/dispatch/DefaultHttpDispatcher.java index 29f36722a..9d464df53 100644 --- a/framework/fit/java/fit-builtin/services/fit-http-classic/definition/src/main/java/modelengine/fit/http/server/dispatch/DefaultHttpDispatcher.java +++ b/framework/fit/java/fit-builtin/services/fit-http-classic/definition/src/main/java/modelengine/fit/http/server/dispatch/DefaultHttpDispatcher.java @@ -85,7 +85,8 @@ public class DefaultHttpDispatcher implements HttpDispatcher { @Override public HttpHandler dispatch(HttpClassicServerRequest request, HttpClassicResponse response) { log.debug("Remote address accessed. [path={}, remote={}]", - request.path(), request.remoteAddress().hostAddress()); + request.path(), + request.remoteAddress().hostAddress()); return OptionalUtils.get(() -> this.selectFromNoPathVariableHandlers(request)) .orElse(() -> this.selectFromPathVariableHandlers(request)) .orElse(() -> this.selectFromWildcardHandlers(request)) @@ -197,6 +198,10 @@ public Map> getHttpHandlersMapping() { @Override public void registerGroup(HttpHandlerGroup group) { if (group != null) { + if (this.groups.containsKey(group.getName())) { + throw new IllegalStateException(StringUtils.format("Http handler group already exists. [group={0}]", + group.getName())); + } this.groups.put(group.getName(), group); } }