question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Could not resolve pointer: /definitions/List does not exist in document

See original GitHub issue

ENV:

  • springboot-2.0.2.RELEASE , springfox-swagger-ui-2.8.0 , springfox-swagger2-2.8.0

Q:

  • I encapsulated a unified return object.
public class ResultVO<T> implements Serializable {
    // Omit content
}
  • I used swagger-ui on Controller as API doc . He works in these places and works very well.
@ApiOperation(value = "pageList", notes = "paging select", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
    @RequestMapping(value="/pageList",method={RequestMethod.GET,RequestMethod.POST})
    @CtlResultAnnotation
    public ResultVO<PageInfo<DicBase>> pageList(DicBase dicBase, @RequestParam(defaultValue="1") int pageNum,
                                             @RequestParam(defaultValue="10") int pageSize, HttpServletRequest request){
    // Omit content
}

@ApiOperation(value = "children", notes = "get children", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
    @RequestMapping(value="/children",method={RequestMethod.GET,RequestMethod.POST})
    @CtlResultAnnotation
    public ResultVO<List<DicBase>> getChildren(@RequestBody(required=false) DicBase dicBase){
     // Omit content
}

@ApiOperation(value = "view", notes = "detail", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_VALUE)
    @RequestMapping(value="/view",method=RequestMethod.GET)
    @CtlResultAnnotation
    public ResultVO<DicBase> view(@RequestParam Long id){
    // Omit content
}
  • when I add this controller,I get an error on ‘swagger-ui.html’.
@ApiOperation(value = "dicValues", notes = "keys-values", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
    @RequestMapping(value="/dicValues",method=RequestMethod.POST)
    @CtlResultAnnotation
    public ResultVO<Map<String, List<DicBase>>> dicValues(@RequestParam(value = "keys[]") List<String> keys){
    // Omit content
}
Errors
Resolver error at definitions.Map«string,List«DicBase»».additionalProperties.$ref
Could not resolve reference because of: Could not resolve pointer: /definitions/List does not exist in document
  • Here is my swagger configuation. I know I should add ‘alternateTypeRules’, but I can not found a full document about this.
 private ApiInfo setApiInfo(String title, String description, String teamService, String version) {
        return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl(teamService).version(version).build();
    }

    @Bean
    public Docket adminRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(setApiInfo("admin-api doc","(PMP)-system-api doc","https://blog.csdn.net/xu_san_duo", "1.0"))
                .alternateTypeRules(
                    newRule(
                        typeResolver.resolve(
                            DeferredResult.class,
                            typeResolver.resolve(GenericType.class, WildcardType.class)
                        ),
                        typeResolver.resolve(WildcardType.class)
                    )
                )
                .groupName("admin module")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sdcm.web.controller.admin"))
                .paths(PathSelectors.any())
                .build();
    }
  • I want a standard or detailed way, I hope to get your help. Thanks.

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:3
  • Comments:23 (5 by maintainers)

github_iconTop GitHub Comments

9reactions
prowavecommented, Aug 22, 2018

I was able to prevent the bad reference from being generated by adding this to my Docket.

        .alternateTypeRules( 
            AlternateTypeRules.newRule(
                typeResolver.resolve(Map.class, String.class,
                    typeResolver.resolve(Map.class, String.class, typeResolver.resolve(List.class, String.class))),
                typeResolver.resolve(Map.class, String.class, WildcardType.class), Ordered.HIGHEST_PRECEDENCE))

where my type was

Map<String, Map<String, List<String>>>

ButI still think an invalid spec should be created. Perhaps a warning with instructions on how to handle nested Generics more than n levels deep? If that is the accurate description. 😃

8reactions
daveleenewcommented, Aug 10, 2018

The same problem in 2.9.2 version~~~~!~!~!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Springfox Swagger: Could not resolve pointer - Stack Overflow
I was able to replicate this issue. enter image description here. This can be resolved by defining new AlternateTypeRules while creating ...
Read more >
"Swagger Resolver" Errors in later versions of Reff app
I have now been seeing this in the later versions of reff app. Swagger can't resolve mappings to some resource documentations in the ......
Read more >
Using $ref - Swagger
OAS 3 This guide is for OpenAPI 3.0. Using $ref. When you document an API, it is common to have some features which...
Read more >
Could not resolve pointer: /definitions/List does not exist in ...
Could not resolve pointer : /definitions/List does not exist in document. swagger-springmvc. 19 July 2018 Posted by dingziyang ...
Read more >
JSON Error For Swagger UI - Mendix Forum
schema.$ref Could not resolve reference because of: Could not resolve pointer: /definitions/ does not exist in document Thank you. asked 2018 ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found