首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springfox swagger抛出StackOverflowError

Springfox swagger抛出StackOverflowError
EN

Stack Overflow用户
提问于 2015-12-24 23:40:57
回答 1查看 1.2K关注 0票数 2

我正在尝试将springfox-swagger添加到我的Spring MVC项目中。我有以下配置:

代码语言:javascript
复制
@Configuration
@EnableSwagger2
@ComponentScan(basePackageClasses = com.mycompany.MyCtrl.class)
public class SpringFoxConfig {

    @Autowired
    private TypeResolver typeResolver;

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2);
    }
}

@Configuration
@EnableWebMvc
@EnableCaching
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ComponentScan(basePackageClasses = { ApplicationConfig.class, AppConfig.class})
@Import(SpringFoxConfig.class)
public class ApplicationConfig extends WebMvcConfigurerAdapter implements CachingConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

但在部署后,我无法访问任何控制器,1-5分钟后,我得到以下堆栈跟踪:

代码语言:javascript
复制
 2015-12-24 18:26:46,297 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-5) Context initialization failed: com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError

 at springfox.documentation.spi.schema.contexts.ModelContext.hasSeenBefore(ModelContext.java:156) [springfox-spi-2.3.0.jar:2.3.0]

 at springfox.documentation.spi.schema.contexts.ModelContext.parentHasSeenBefore(ModelContext.java:174) [springfox-spi-2.3.0.jar:2.3.0]
at springfox.documentation.spi.schema.contexts.ModelContext.hasSeenBefore(ModelContext.java:157) [springfox-spi-2.3.0.jar:2.3.0]

没有了springfox,我的控制器工作得很好。我哪里做错了?

EN

回答 1

Stack Overflow用户

发布于 2016-12-15 17:12:23

当你有一个具有双向引用的master-details DTO时,我已经看到了这种行为:

代码语言:javascript
复制
class Master {
    List<Detail> details;
}

class Details {
    Master master;
}

此问题的解决方法是在以下类型的参数上向@ApiParam批注添加hidden = true属性:

代码语言:javascript
复制
ResponseEnitity<?> controller(@ApiParam(hidden = true) @RequestBody Master master) {
}

我相信这是Springfox中的一个bug,但我还没有机会报告它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34455012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档