Spring 3.2升级时出现错误“未指定[java.util.UUID]类型参数的名称,类文件中也未找到参数名称信息“

rks48beu  于 2024-01-05  发布在  Spring
关注(0)|答案(2)|浏览(195)

在将我的代码从Java 17和Spring-boot 3.1.3升级到Java 21和String-boot 3.2.0之后,我在调用REST API时开始看到如下错误:
更新:在运行了更多的测试之后,使用不同的spring-boot版本与Java 21,我可以告诉这个问题只在spring-boot 3.2.0中可见。
如果我在Java 21中使用spring-boot 3.1.6,系统工作正常。
未指定[java.util.UUID]类型参数的名称,并且在类文件中也未找到参数名称信息。
未指定[java.lang.String]类型参数的名称,并且在类文件中也未找到参数名称信息。
未指定[java.lang. xml]类型参数的名称,并且在类文件中也未找到参数名称信息。
有什么想法是怎么回事?是否有一个Spring启动故障,因为它似乎已经发生在过去?https://github.com/spring-projects/spring-loaded/issues/68
谢谢
PS:在做这次升级之前代码工作正常。除了Java版本和Spring版本之外没有其他变化。

  1. are_1 | 2023-12-10T18:04:38.962Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} DEBUG: [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolverrlf(Using @ExceptionHandler com.kp.mw.exceptions.RestExceptionHandler#handleCustomException(Exception))
  2. middleware_1 | 2023-12-10T18:04:38.966Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} ERROR: [com.kp.mw.exceptions.RestExceptionHandler] com.kp.mw.exceptions.RestExceptionHandlerrlf(Exception occurred:java.lang.IllegalArgumentException: Name for argument of type [java.util.UUID] not specified, and parameter name information not found in class file either.
  3. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:183)
  4. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.getNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:160)
  5. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:106)
  6. middleware_1 | at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
  7. middleware_1 | at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:218)
  8. middleware_1 | at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:171)
  9. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
  10. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
  11. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
  12. middleware_1 | at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
  13. middleware_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
  14. middleware_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
  15. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
  16. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
  17. middleware_1 | at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
  18. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
  19. middleware_1 | at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
  20. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
  21. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  22. middleware_1 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  23. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  24. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  25. middleware_1 | at com.kp.mw.filters.AuthorizationFilter.doFilter(AuthorizationFilter.java:36)
  26. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  27. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  28. middleware_1 | at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
  29. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  30. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  31. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  32. middleware_1 | at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
  33. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  34. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  35. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  36. middleware_1 | at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
  37. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  38. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  39. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  40. middleware_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
  41. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  42. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  43. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  44. middleware_1 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
  45. middleware_1 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  46. middleware_1 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  47. middleware_1 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
  48. middleware_1 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  49. middleware_1 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  50. middleware_1 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
  51. middleware_1 | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
  52. middleware_1 | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  53. middleware_1 | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
  54. middleware_1 | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
  55. middleware_1 | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  56. middleware_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  57. middleware_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  58. middleware_1 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  59. middleware_1 | at java.base/java.lang.Thread.run(Thread.java:1583)
  60. middleware_1 | )
  61. middleware_1 | 2023-12-10T18:04:38.976Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} DEBUG: [org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor] org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessorrlf(Using 'text/plain', given [*/*] and supported [text/plain, */*, application/json, application/*+json])
  62. middleware_1 | 2023-12-10T18:04:38.976Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} DEBUG: [org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor] org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessorrlf(Writing ["{"message":"An unexpected error has occurred"}"])
  63. lb_1 | 172.18.0.1 - - [10/Dec/2023:18:04:38 +0000] "GET /product/d9ede6d3-c262-4fc6-b764-cdd4e229f841?ignoreView=true&web HTTP/1.1" 500 46 "http://localhost/?editProductId=d9ede6d3-c262-4fc6-b764-cdd4e229f841&locale=en" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
  64. middleware_1 | 2023-12-10T18:04:38.981Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} DEBUG: [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolverrlf(Resolved [java.lang.IllegalArgumentException: Name for argument of type [java.util.UUID] not specified, and parameter name information not found in class file either.])
  65. middleware_1 | 2023-12-10T18:04:38.982Z <> {thread=http-nio-8080-exec-7} {traceId=7d292d7bef196d7b46db97bff2e7ca0c} {spanId=bba4492c71a85d94} DEBUG: [org.springframework.web.servlet.DispatcherServlet] org.springframework.web.servlet.DispatcherServletrlf(Completed 500 INTERNAL_SERVER_ERROR)
  66. middleware_1 | 2023-12-10T18:04:38.984Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.SqlSessionUtils] org.mybatis.spring.SqlSessionUtilsrlf(Creating a new SqlSession)
  67. middleware_1 | 2023-12-10T18:04:38.984Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.SqlSessionUtils] org.mybatis.spring.SqlSessionUtilsrlf(SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3b6970da] was not registered for synchronization because synchronization is not active)
  68. middleware_1 | 2023-12-10T18:04:38.984Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.springframework.jdbc.datasource.DataSourceUtils] org.springframework.jdbc.datasource.DataSourceUtilsrlf(Fetching JDBC Connection from DataSource)
  69. middleware_1 | 2023-12-10T18:04:38.985Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.transaction.SpringManagedTransaction] org.mybatis.spring.transaction.SpringManagedTransactionrlf(JDBC Connection [io.opentelemetry.instrumentation.jdbc.internal.OpenTelemetryConnection@5342b636] will not be managed by Spring)
  70. middleware_1 | 2023-12-10T18:04:38.985Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrors] com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrorsrlf(==> Preparing: SELECT ir.* FROM errors.ignorable_errors ir)
  71. middleware_1 | 2023-12-10T18:04:38.985Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrors] com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrorsrlf(==> Parameters: )
  72. middleware_1 | 2023-12-10T18:04:38.989Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrors] com.kp.mw.db.mappers.ErrorsMapper.getIgnoreErrorsrlf(<== Total: 0)
  73. middleware_1 | 2023-12-10T18:04:38.990Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.SqlSessionUtils] org.mybatis.spring.SqlSessionUtilsrlf(Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3b6970da])
  74. middleware_1 | 2023-12-10T18:04:38.992Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.SqlSessionUtils] org.mybatis.spring.SqlSessionUtilsrlf(Creating a new SqlSession)
  75. middleware_1 | 2023-12-10T18:04:38.992Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.SqlSessionUtils] org.mybatis.spring.SqlSessionUtilsrlf(SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2bd9d594] was not registered for synchronization because synchronization is not active)
  76. middleware_1 | 2023-12-10T18:04:38.992Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.springframework.jdbc.datasource.DataSourceUtils] org.springframework.jdbc.datasource.DataSourceUtilsrlf(Fetching JDBC Connection from DataSource)
  77. middleware_1 | 2023-12-10T18:04:38.993Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [org.mybatis.spring.transaction.SpringManagedTransaction] org.mybatis.spring.transaction.SpringManagedTransactionrlf(JDBC Connection [io.opentelemetry.instrumentation.jdbc.internal.OpenTelemetryConnection@5b468f95] will not be managed by Spring)
  78. middleware_1 | 2023-12-10T18:04:38.993Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [com.kp.mw.db.mappers.ErrorsMapper.createError] com.kp.mw.db.mappers.ErrorsMapper.createErrorrlf(==> Preparing: INSERT INTO errors.errors (id, username, method, url, urlRegex, body, signature, error_stack, error_message, ip, creation_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP))
  79. middleware_1 | 2023-12-10T18:04:38.994Z <> {thread=persist-error-thread} {traceId=} {spanId=} DEBUG: [com.kp.mw.db.mappers.ErrorsMapper.createError] com.kp.mw.db.mappers.ErrorsMapper.createErrorrlf(==> Parameters: 8e69ba03-6cd9-430e-b30a-db5cca540298(UUID), null, getProduct(String), http://localhost/product/d9ede6d3-c262-4fc6-b764-cdd4e229f841?ignoreView=true&web(String), /product/[0-9a-zA-Z-]{1,}(String), null, 108b9713a0c70e4d7add7ec76789995be8c5689790dd99f1a6eee2ef3b4017be(String), java.lang.IllegalArgumentException: Name for argument of type [java.util.UUID] not specified, and parameter name information not found in class file either.
  80. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:183)
  81. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.getNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:160)
  82. middleware_1 | at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:106)
  83. middleware_1 | at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
  84. middleware_1 | at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:218)
  85. middleware_1 | at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:171)
  86. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
  87. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
  88. middleware_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
  89. middleware_1 | at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
  90. middleware_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
  91. middleware_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
  92. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
  93. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
  94. middleware_1 | at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
  95. middleware_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
  96. middleware_1 | at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
  97. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
  98. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  99. middleware_1 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  100. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  101. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  102. middleware_1 | at com.kp.mw.filters.AuthorizationFilter.doFilter(AuthorizationFilter.java:36)
  103. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  104. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  105. middleware_1 | at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
  106. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  107. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  108. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  109. middleware_1 | at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
  110. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  111. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  112. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  113. middleware_1 | at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
  114. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  115. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  116. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  117. middleware_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
  118. middleware_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  119. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
  120. middleware_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
  121. middleware_1 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
  122. middleware_1 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  123. middleware_1 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  124. middleware_1 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
  125. middleware_1 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  126. middleware_1 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  127. middleware_1 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
  128. middleware_1 | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
  129. middleware_1 | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  130. middleware_1 | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
  131. middleware_1 | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
  132. middleware_1 | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  133. middleware_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  134. middleware_1 | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  135. middleware_1 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  136. middleware_1 | at java.base/java.lang.Thread.run(Thread.java:1583)
  137. middleware_1 | (String), Name for argument of type [java.util.UUID] not specified, and parameter name information not found in class file either.(String), 172.18.0.1(String))
  138. middleware_1 | 2023-12-10T18:04:39.009Z <> {thread=http-nio-8080-exec-8} {traceId=} {spanId=} DEBUG: [io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator] io.micrometer.tracing.otel.propagation.BaggageTextMapPropagatorrlf(Will propagate new baggage context for entries {})
  139. middleware_1 | 2023-12-10T18:04:39.010Z <> {thread=http-nio-8080-exec-8} {traceId=bbf381b8fdee086f923ab2cec5764629} {spanId=cff2129fcd91a697} DEBUG: [org.springframework.web.servlet.DispatcherServlet] org.springframework.web.servlet.DispatcherServletrlf(GET "/system/alerts/active?web", paramet

字符串
My maven compile plugin configuration:

  1. ......
  2. <properties>
  3. <maven.compiler.source>21</maven.compiler.source>
  4. <maven.compiler.target>21</maven.compiler.target>
  5. <java.version>21</java.version>
  6. <springboot.version>3.2.0</springboot.version>
  7. ......
  8. <plugin>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-maven-plugin</artifactId>
  11. <version>${springboot.version}</version>
  12. <executions>
  13. <execution>
  14. <configuration>
  15. <classifier>exec</classifier>
  16. <finalName>${project.artifactId}</finalName>
  17. </configuration>
  18. <goals>
  19. <goal>repackage</goal>
  20. </goals>
  21. </execution>
  22. <execution>
  23. <id>build-info</id>
  24. <goals>
  25. <goal>build-info</goal>
  26. </goals>
  27. </execution>
  28. </executions>
  29. </plugin>
  30. ......

6uxekuva

6uxekuva1#

你知道这是怎么回事吗?
一些元工具(例如注解处理器;直接检查类文件的东西,或者使用反射试图从类中收集信息,而不是基于接口和类中的实现方法,而是仅基于结构-例如“任何以字母get开头的方法”)需要参数的名称来完成其工作。
然而,java-the-language的设置使得参数名是无关紧要的,因此,在基本的java中(就像在旧版本的java中,编译时没有任何标志),它们不会包含在你的类文件中-如果你写:

  1. public void foo(String x, int y) {}

字符串
然后在类文件中结束的是:

  • public,是的,作为一个标志。
  • 标识字符串foo(Ljava/lang/String;I)V
  • 该字符串包含voidV)和两种参数类型(String,I用于int),当然还有方法名。但不是xy

因为参数名在各种情况下都很方便,现在java编译器倾向于默认包含这些信息,但是基本语言设计并不需要它们的存在(例如,在java中,不可能将其称为foo(x: "Hi", y: 5)-在许多语言中你可以这样做,在java中,你不能。
无论出于何种原因,您获得的类文件不再包含此信息。
有几种解释:

  • 编译,传递-g:varsjavac。你可能需要研究如何告诉你的构建工具来做这件事。这告诉构建工具包括变量名的调试符号。这包括方法参数名。这对每个javac都有效,但是,你可能应该使用...
  • -parameters选项是新的,也是更好的方法。

如果你使用maven,看起来像这样:

  1. <groupId>org.apache.maven.plugins</groupId>
  2. <artifactId>maven-compiler-plugin</artifactId>
  3. ...
  4. <configuration>
  5. <release>21</release>
  6. <compilerArgs>
  7. <arg>-parameters</arg>
  8. </compilerArgs>
  9. </configuration>


确切地说,哪个类文件缺少方法参数名--不幸的是,这在粘贴中并不清楚。
您可以使用反射检查它们是否具有它:

  1. System.out.println(
  2. String.class.getMethod("charAt", int.class).getParameters()[0].getName()
  3. );


这将打印'arg 0',这是.getName()在此信息 * 不存在 * 时最终执行的操作。
第二种解决方法是使用javap,即反编译器。它显示arg名称-如果它显示arg0arg1等,则不包含它。如果它显示实际名称,则包含它,并且抛出这些错误的Meta工具可以处理这些文件。

展开查看全部
nkoocmlb

nkoocmlb2#

我的解决方案是将以下maven编译器插件部分添加到我的pom中:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-compiler-plugin</artifactId>
  4. <version>3.11.0</version>
  5. <configuration>
  6. <parameters>true</parameters>
  7. </configuration>
  8. </plugin>

字符串

相关问题