You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI生成API在K8s中PUT请求失败,报GenericSignatureFormatError

问题描述

我在Spring WebFlux 5.x服务器上运行由OpenAPI 7.0.0生成的控制器和模型。本地运行一切正常,但部署到Kubernetes Pod后,所有PUT请求均失败,GET/DELETE请求可正常执行。GET请求返回一个复杂对象,PUT请求也使用该对象,怀疑问题与@RequestBody注解有关。

错误堆栈跟踪

Caused by: java.lang.reflect.GenericSignatureFormatError: Signature Parse error: expected a class type
    Remaining input: java/lang/Object
    at java.base/sun.reflect.generics.parser.SignatureParser.error(Unknown Source)
    at java.base/sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(Unknown Source)
    at java.base/sun.reflect.generics.parser.SignatureParser.parseClassSignature(Unknown Source)
    at java.base/sun.reflect.generics.parser.SignatureParser.parseClassSig(Unknown Source)
    at java.base/sun.reflect.generics.repository.ClassRepository.parse(Unknown Source)
    at java.base/sun.reflect.generics.repository.ClassRepository.parse(Unknown Source)
    at java.base/sun.reflect.generics.repository.AbstractRepository.<init>(Unknown Source)
    at java.base/sun.reflect.generics.repository.GenericDeclRepository.<init>(Unknown Source)
    at java.base/sun.reflect.generics.repository.ClassRepository.<init>(Unknown Source)
    at java.base/sun.reflect.generics.repository.ClassRepository.make(Unknown Source)
    at java.base/java.lang.Class.getGenericInfo(Unknown Source)
    at java.base/java.lang.Class.getTypeParameters(Unknown Source)
    at java.base/sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(Unknown Source)
    at java.base/sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(Unknown Source)
    at java.base/sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(Unknown Source)
    at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(Unknown Source)
    at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Unknown Source)
    at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(Unknown Source)
    at java.base/sun.reflect.generics.repository.MethodRepository.computeReturnType(Unknown Source)
    at java.base/sun.reflect.generics.repository.MethodRepository.getReturnType(Unknown Source)
    at java.base/java.lang.reflect.Method.getGenericReturnType(Unknown Source)
    at org.hibernate.validator.internal.properties.javabean.JavaBeanMethod.<init>(JavaBeanMethod.java:20)
    at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:132)
    at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:120)
    at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:112)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findExecutableMetaData(AnnotationMetaDataProvider.java:307)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMetaData(AnnotationMetaDataProvider.java:292)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMethodMetaData(AnnotationMetaDataProvider.java:279)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:130)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:120)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.getBeanConfigurationForHierarchy(BeanMetaDataManagerImpl.java:234)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.createBeanMetaData(BeanMetaDataManagerImpl.java:201)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.getBeanMetaData(BeanMetaDataManagerImpl.java:165)
    at org.hibernate.validator.internal.engine.ValidatorImpl.buildNewLocalExecutionContext(ValidatorImpl.java:772)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedAnnotatedObjectForCurrentGroup(ValidatorImpl.java:627)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:590)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParametersInContext(ValidatorImpl.java:880)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:283)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:235)
    at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)

已尝试的操作

  • 使用过OpenAPI版本6.3.0和7.0.0;
  • 直接在K8s Pod中触发PUT请求,复现了相同问题,确认该问题与LB/proxy无关;
  • 将Pod上的JAR包下载到本地环境,使用完全相同的JVM参数和JDK版本(JDK 17.0.4.1)运行,本地调用PUT请求成功。

内容的提问来源于stack exchange,提问作者James Miao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:55:55