2016-08-31 18 views
6

मैं अपने वसंत आरईएसटी आवेदन के साथ swagger-ui सेटअप करने की कोशिश कर रहा हूं। मैं वसंत 4.2.6.RELEASE और swagger कोर & ui 2.5.0 का उपयोग कर रहा हूँ। मैं स्वैगर एनोटेशन का उपयोग नहीं कर रहा हूं, वसंत आरईएसटी एनोटेशन लेने के लिए स्वैगर की उम्मीद कर रहा हूं।वसंत आवेदन: swagger-ui swagger-resource/config/ui पर HTTP GET क्यों करने में सक्षम नहीं है?

मैं एपीआई दस्तावेज़ उत्पन्न करने के लिए स्वैगर प्राप्त करने में सक्षम हूं और मैं इसे v2/api-docs के अंतर्गत देख सकता हूं।

मैं swagger-ui.html पृष्ठ पर क्लिक करने में सक्षम हूं लेकिन यह पृष्ठ पर कोई एपीआई-दस्तावेज़ या नियंत्रक जानकारी नहीं दिखाता है। ब्राउज़र पर डीबगर मोड को सक्षम करने पर मुझे लगता है कि "swagger-resource/config/ui" प्राप्त करने का प्रयास करते समय यह त्रुटियां हैं - 404 (नहीं मिला) देता है।

मैं अकड़-ui http://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

स्थापित करने के लिए नीचे दिए गए लिंक का पालन किया है मैं ऊपर के लिंक में निर्दिष्ट लेकिन है कि या तो मदद नहीं की रूप में शुरू में सेटअप संसाधन हैंडलर था और मुझे एक ही 404 त्रुटि दे दी है। मैंने संसाधन हैंडलर को ट्वीव करने का प्रयास किया है, इसलिए देखें कि क्या यह swagger-ui swagger-resource/config/ui पर प्राप्त करने में मदद कर सकता है।

क्यों swagger-ui संसाधन swagger-resource/config/ui प्राप्त करने में सक्षम नहीं है?

मैंने नीचे अपने संसाधन हैंडलर सेट किए हैं।

SwaggerConfiguration

@Configuration 
@EnableSwagger2 
public class SwaggerConfiguration { 

@Bean 
public Docket api(){ 
    return new Docket(DocumentationType.SWAGGER_2) 
      .select() 
      .apis(RequestHandlerSelectors.any()) 
      .paths(PathSelectors.any()) 
      .build(); 
      //.apiInfo(apiInfo()); 
} 
} 

वेब कॉन्फ़िग फ़ाइल

@EnableWebMvc 
@Configuration 
@Import(SwaggerConfiguration.class) 
@ComponentScan("com.bank.direct.services") 

public class WebConfig extends WebMvcConfigurerAdapter { 

@Override 
public void configureMessageConverters(List<HttpMessageConverter<?>> pConverters) { 
    pConverters.add(RestUtils.getJSONMessageConverter()); 
} 

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

}

मैं webapp के लिए एक SecurityConfig सेटअप करते हैं, लेकिन मैं सिर्फ मामले में न्यूनतम करने के लिए इसे रखा है यह किसी भी मुद्दे का कारण हो सकता है।

@EnableWebSecurity 
@EnableGlobalMethodSecurity(prePostEnabled = true) 
@Configuration 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 


@Autowired 
private AuthenticationService _authenticationService; 


@Autowired 
public void globalUserDetails(AuthenticationManagerBuilder pAuth) throws Exception { 

    pAuth.userDetailsService(_authenticationService); 
} 


@Override 
protected void configure(HttpSecurity pHttp) throws Exception { 

    // Enable HTTP caching 
    pHttp.headers().cacheControl().disable(); 

    // Configure security 
    pHttp.httpBasic() 

    // -- Allow unauthenticated request (must be done before allowing only authenticated requests) 
    .and() 
    .authorizeRequests() 
    .antMatchers("/rest/application/information/").permitAll(); 

} 

मैं कुछ संसाधन मानचित्रण देखने के लिए जब आवेदन

2016-08-31 11:24:55 जानकारी शुरू होता है करना [स्थानीय होस्ट-startStop-1] RequestMappingHandlerMapping - मैप "{[/v2/api-docs], विधियों = [GET], उत्पादन = [एप्लिकेशन/जेसन || एप्लिकेशन/हॉल + जेसन]} "सार्वजनिक org.springframework.http.ResponseEntity springfox.documentation.swagger2.web पर। Swagger2Controller.getDocumentation (java.lang.String, javax.servlet.http.HttpServletRequest) 2016/08/31 11:24:55 जानकारी [स्थानीय होस्ट-startStop-1] RequestMappingHandlerMapping - मैप "{[/ अकड़-संसाधनों/विन्यास/सुरक्षा]}" org.springframework.http.ResponseEntity पर springfox.documentation .swagger.web.ApiResourceController.security कॉन्फ़िगरेशन() 2016-08-31 11:24:55 जानकारी [लोकलहोस्ट-स्टार्टस्टॉप -1] RequestMappingHandlerMapping - मैप किया गया "{[/ swagger-resource]}" org.springframework.http पर ResponseEntity> springfox.documentation.swagger.web.ApiResourceController।swaggerResources() 2016/08/31 11:24:55 जानकारी [स्थानीय होस्ट-startStop-1] RequestMappingHandlerMapping - मैप "{[/ अकड़-संसाधनों/विन्यास/ui]}" पर org.springframework.http .ResponseEntity springfox.documentation.swagger.web.ApiResourceController.uiConfiguration()

+0

आप समस्या हल किया:

मैं निम्नलिखित (2.4.0 के रूप में अकड़-ui गाइड है) का इस्तेमाल किया? कृपया एक प्रतिक्रिया दें। –

उत्तर

2

मान लिया जाये कि तुम करीब से कि गाइड (http://www.baeldung.com/swagger-2-documentation-for-spring-rest-api) आप अपने अकड़ निर्भरता के लिए विभिन्न संस्करणों के साथ समाप्त हो गया है कि कौन-से कारण रहा है निम्नलिखित गया 404 (मेरे लिए कम से कम ...)

टी springfox-swagger2 से मेल खाने के लिए springfox-swagger-ui निर्भरता के संस्करण को बदल रहा है।

<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger2</artifactId> 
    <version>2.6.1</version> 
</dependency> 

<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger-ui</artifactId> 
    <version>2.6.1</version> 
</dependency> 
+0

धन्यवाद !!!! यह वास्तव में मेरी समस्या है। मैं बाल्डंग का पीछा कर रहा था और इसलिए मेरे पास दो अलग-अलग संस्करण थे। मैंने दोनों को 2.6.1 में बदल दिया और अब यह काम करता है। –

+0

यह अच्छी तरह से काम करता है। धन्यवाद – nolines

संबंधित मुद्दे