2017-02-28 71 views
1

我这个文件之后,https://github.com/swagger-api/swagger-core/wiki/1.3--1.5-Migration#setting-up-additional-information-authorization-info如何添加的OAuth2配置在逆流的Java招摇

在此,他们要求加引导的servlet,我的问题是我在

我的自举类中添加这个引导类

@Override 
    public void init(ServletConfig config) throws ServletException { 
     super.init(config); 



     Info info = new Info() 
       .title("Swagger Petstore") 
       .description("This is a sample server Petstore server. You can find out more about Swagger " + 
         "at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, " + 
         "you can use the api key `special-key` to test the authorization filters.") 
       .termsOfService("http://swagger.io/terms/") 
       .contact(new Contact() 
         .email("[email protected]")) 
       .license(new License() 
         .name("Apache 2.0") 
         .url("http://www.apache.org/licenses/LICENSE-2.0.html")); 

     ServletContext context = config.getServletContext(); 
     Swagger swagger = new Swagger() 
       .info(info); 
     swagger.securityDefinition("testauth", 
       new OAuth2Definition() 
         .implicit("http://localhost:8002/oauth/dialog") 
         .scope("email", "Access to your email address") 
         .scope("pets", "Access to your pets")); 
     swagger.tag(new Tag() 
       .name("pet") 
       .description("Everything about your Pets") 
       .externalDocs(new ExternalDocs("Find out more", "http://swagger.io"))); 
     swagger.tag(new Tag() 
       .name("store") 
       .description("Access to Petstore orders")); 
     swagger.tag(new Tag() 
       .name("user") 
       .description("Operations about user") 
       .externalDocs(new ExternalDocs("Find out more about our store", "http://swagger.io"))); 
     context.setAttribute("swagger", swagger); 
    } 

MY app.class

@ApplicationPath("/") 
    public class App extends javax.ws.rs.core.Application { 


     public App() { 
      this.injector = injector; 
      BeanConfig beanConfig = new BeanConfig(); 
      beanConfig.setVersion("1.0.2"); 
      beanConfig.setSchemes(new String[] { "http" }); 
      beanConfig.setHost("localhost:7004"); 
      beanConfig.setBasePath("test"); 
      beanConfig.setResourcePackage("com.testpacakge"); 
      beanConfig.setScan(true); 
     } 

@Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> resources = new HashSet<Class<?>>(); 
     resources.add(Bootstrap.class); 
/// my other resorces 
} 

@Override 
    public Set<Object> getSingletons() { 
     final Set<Object> objects = new HashSet<>(); 

     objects.add(injector.getInstance(Bootstrap.class)); 
} 
     } 

并在Main.class

deploymentInfoObj.addServlet(Servlets.servlet("Bootstrap", Bootstrap.class) 
.addMapping("/Bootstrap")); 

我在添加Bootstrap,应用程序和主类。

但是这个设置没有加载的招摇。

任何想法来解决这个问题?

回答

0

在Servlet的部分添加

.setLoadOnStartup(1) 

后,将其固定

deploymentInfoObj.addServlet(Servlets.servlet("Bootstrap", Bootstrap.class) 
.addMapping("/Bootstrap").setLoadOnStartup(1));