有人可以让我知道这是否是使用嵌入式码头配置Swagger的正确方法。
public class TestMain {
public static void main(String[] args) throws Exception {
Server gs = new Server();
ServletContextHandler sch = gs.getServletContextHandler();
sch.addFilter(new FilterHolder(new RequestTrackerFilter()), "/*", EnumSet.of(DispatcherType.REQUEST));
sch.addFilter(new FilterHolder(new ActionIdFilter()), "/*", EnumSet.of(DispatcherType.REQUEST));
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(false);
resource_handler.setResourceBase("public/2.0");
ContextHandler context = new ContextHandler("/apitest");
context.setHandler(resource_handler);
ContextHandlerCollection contexts = new ContextHandlerCollection();
setupSwaggerContextHandler();
// context.getServletContext().addListener(new SwaggerInitializer());
contexts.setHandlers(new Handler[]{sch, context});
gs.getServer().setHandler(contexts);
gs.start();
}
private static ServletContextHandler setupSwaggerContextHandler() {
// Configure Swagger-core
final ServletHolder swaggerServletHolder = new ServletHolder(new JerseyJaxrsConfig());
swaggerServletHolder.setName("JerseyJaxrsConfig");
swaggerServletHolder.setInitParameter("api.version", "1.0.0");
swaggerServletHolder.setInitParameter("swagger.api.basepath", "http://localhost:9000/apitest");
swaggerServletHolder.setInitOrder(2);
final ServletContextHandler swaggerContextHandler = new ServletContextHandler();
swaggerContextHandler.setSessionHandler(new SessionHandler());
// Bind Swagger-core to the url HOST/api-docs
swaggerContextHandler.setContextPath("/api-docs");
swaggerContextHandler.addServlet(swaggerServletHolder, "/*");
return swaggerContextHandler;
}
}
我无法使用查看任何输出
http://localhost:9000/apitest/api-docs
正在关注https://groups.google.com/forum/#!topic/swagger-swaggersocket/KHYESESD6c4上的讨论
如果您使用的是swagger-core 1.5.x,则需要在上下文路径下查找/swagger.json
。因此,对于您的设置:
http://localhost:9000/apitest/api-docs/swagger.json
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句