So for my servlets, I just tried: apiservlet = servletContextHandler.addServlet(ProfileServlet.class, "/user/*"); > apiservlet.setInitOrder(3); > apiservlet.setInitParameter("com.sun.jersey.config.property.packages", > "com.coreservices.servlets;package com.coreservices.datatypes"); > > and
apiservlet = servletContextHandler.addServlet(ProfileServlet.class, > "/user/*"); > apiservlet.setInitOrder(3); > apiservlet.setInitParameter("com.sun.jersey.config.property.packages", > "com.api.resources;io.swagger.jaxrs.json;io.swagger.jaxrs.listing;com.coreservices.servlets;package > > com.coreservices.datatypes"); I am still getting the default swagger response *{"swagger":"2.0","info":{"version":"1.0.0","title":""}}* Am I missing any annotation or configuration in the files? Secondly to access the swagger ui annotation for my custom servlet "ProfileServlet.class", do I use the same url as "http://host:7000/api/swagger.json"? Really appreciate the quick feedback on this On Thursday, 22 December 2016 13:52:18 UTC-5, tony tam wrote: > > Sounds like the issue then is how it’s scanning your code. Put your API > package here: > > apiservlet.setInitParameter("com.sun.jersey.config.property.packages", > "com.api.resources;io.swagger.jaxrs.json;io.swagger.jaxrs.listing"); > > so they can be scanned. > > On Dec 22, 2016, at 10:50 AM, janet vanderpuye <rhy...@gmail.com > <javascript:>> wrote: > > Quick update. After modifying the initializeAPI method to the original > Servlet class in the blog(see below), I was able to get some response from > the swagger-ui on http://host:7000/api/swagger.json. But I it seems like > swagger wasnt able to parse my servlet annotations >> >> http://host:7000/api/swagger.json ===> >> *{"swagger":"2.0","info":{"version":"1.0.0","title":""}}* >> > > private static Server initializeApi(Properties properties) { >> logger.info("Initializing user profile server..."); >> new UserDao(); >> Server server = new >> Server(Integer.parseInt(properties.getProperty(Config.JETTY_SERVICE_PORT))); >> ServletContextHandler servletContextHandler = new >> ServletContextHandler(ServletContextHandler.SESSIONS); >> servletContextHandler.setContextPath("/"); >> server.setHandler(servletContextHandler); >> //Setup APIs >> ServletHolder apiservlet = >> servletContextHandler.addServlet(ServletContainer.class, "/api/*"); >> apiservlet.setInitOrder(1); >> apiservlet.setInitParameter("com.sun.jersey.config.property.packages", >> "com.api.resources;io.swagger.jaxrs.json;io.swagger.jaxrs.listing"); >> >> apiservlet = servletContextHandler.addServlet(ProfileServlet.class, >> "/user/*"); >> //apiservlet.setInitOrder(1); >> apiservlet.setInitParameter("com.sun.jersey.config.property.packages", >> "com.api.resources;io.swagger.jaxrs.json;io.swagger.jaxrs.listing"); >> logger.info("User profile server initialized."); >> >> // Setup Swagger servlet >> ServletHolder swaggerServlet = >> servletContextHandler.addServlet(DefaultJaxrsConfig.class, "/swagger-core"); >> swaggerServlet.setInitOrder(2); >> swaggerServlet.setInitParameter("api.version", "1.0.0"); >> >> // Setup Swagger-UI static resources >> String resourceBasePath = >> Main.class.getResource("/webapp").toExternalForm(); >> servletContextHandler.setWelcomeFiles(new String[] {"index.html"}); >> servletContextHandler.setResourceBase(resourceBasePath); >> servletContextHandler.addServlet(new ServletHolder(new >> DefaultServlet()), "/*"); >> >> return server; >> } >> >> > On Thursday, 22 December 2016 13:31:03 UTC-5, janet vanderpuye wrote: >> >> I recently followed this blog >> <https://gist.github.com/nosmokingpistol/302c4c3ef30f183cf70e> to >> integrate swagger in my embedded jetty project but after running, I'm not >> able to access the swagger.json file on any path combination. Accessing the >> servlets for the resources work with no error but I get the following >> errors when I try to get the swagger.json file >> >> http://host:7000/swagger-core ===> HTTP ERROR 405 >> http://host:7000/swagger-core/swagger.json ===> HTTP ERROR 404 >> http://host:7000/user/swagger.json ===> HTTP ProfileServlet response, not >> swagger.json >> http://host:7000/user ===> HTTP ProfileServlet response, not swagger.json >> http://host:7000/swagger.json ===> HTTP ERROR 404 >> http://host:7000/api/swagger.json ===> HTTP ERROR 404 >> http://host:7000/ ===> Static swagger sample page (Pet store), not >> swagger.json >> >> Main.java >> >> public static void main(String[] args) throws Exception { >> Server server = initializeApi(properties); >> server.start(); >> logger.info("Api resource service started"); >> server.join(); >> } >> >> private static Server initializeApi(Properties properties) { >> logger.info("Initializing user profile server..."); >> new UserDao(); >> Server server = new >> Server(Integer.parseInt(properties.getProperty(Config.JETTY_SERVICE_PORT))); >> ServletContextHandler servletContextHandler = new >> ServletContextHandler(ServletContextHandler.SESSIONS); >> servletContextHandler.setContextPath("/"); >> server.setHandler(servletContextHandler); >> //Setup APIs >> >> ServletHolder apiservlet = >> servletContextHandler.addServlet(ProfileServlet.class, "/user/*"); >> apiservlet.setInitOrder(1); >> apiservlet.setInitParameter("com.sun.jersey.config.property.packages", >> "com.api.resources;io.swagger.jaxrs.json;io.swagger.jaxrs.listing"); >> logger.info("User profile server initialized."); >> >> // Setup Swagger servlet >> ServletHolder swaggerServlet = >> servletContextHandler.addServlet(DefaultJaxrsConfig.class, "/swagger-core"); >> swaggerServlet.setInitOrder(2); >> swaggerServlet.setInitParameter("api.version", "1.0.0"); >> >> // Setup Swagger-UI static resources >> String resourceBasePath = >> Main.class.getResource("/webapp").toExternalForm(); >> servletContextHandler.setWelcomeFiles(new String[] {"index.html"}); >> servletContextHandler.setResourceBase(resourceBasePath); >> servletContextHandler.addServlet(new ServletHolder(new >> DefaultServlet()), "/*"); >> >> return server; >> }} >> >> ProfileServlet.java >> >> @SwaggerDefinition( >> >> >> info = @Info( >> title = "User Profile Servlet", >> version = "1.0.0", >> description = "Servlet that handles basic CRUD operations to the >> user profile data source", >> contact = @Contact(name = "XYZ", email = "XYZ", url = "XYZ"), >> termsOfService = "XYZ", >> license = @License(name = "XYZ", url = "XYZ") >> ), >> basePath = "/", >> consumes = {"application/json"}, >> produces = {"application/json"}, >> schemes = {SwaggerDefinition.Scheme.HTTP, >> SwaggerDefinition.Scheme.HTTPS}, >> tags = {@Tag(name = "users", description = "CRUD operations on user >> datatype")})@Api(value = "/user", description = "performs CRUD operations on >> a user profile")public class ProfileServlet extends HttpServlet { >> Logger logger = Logger.getLogger(ProfileServlet.class.getSimpleName()); >> >> public ProfileServlet(){ >> >> } >> >> @ApiOperation(httpMethod = "GET", value = "Returns a list of the user >> profile datatype", notes = "", response = UserDatatype.class, nickname = >> "getUser", tags = ("User")) >> @ApiResponses(value = { >> @ApiResponse(code = 200, message = "Succssful retrieval of user >> profiles", response = UserDatatype.class), >> @ApiResponse(code = 500, message = "Internal server error") >> }) >> @ApiImplicitParams({ >> @ApiImplicitParam(name = "id", value = "profile id", required = >> false, dataType = "String", paramType = "query"), >> @ApiImplicitParam(name = "firstname", value = "First name of >> user", required = false, dataType = "String", paramType = "query"), >> @ApiImplicitParam(name = "lastname", value = "Last name of >> user", required = false, dataType = "String", paramType = "query"), >> @ApiImplicitParam(name = "phone", value = "phone number of >> user", required = false, dataType = "String", paramType = "query"), >> @ApiImplicitParam(name = "signup", value = "Sign up date of >> user, in dd-MM-yyyy forma", required = false, dataType = "java.sql.Date", >> paramType = "query") >> }) >> @Override >> protected void doGet(HttpServletRequest req, HttpServletResponse resp) >> throws ServletException, IOException { >> RpcLogTemplate logTemplate = new >> RpcLogTemplate(req.getRemoteHost(),req.getParameter("client"), >> req.getParameter("clientapp"), Config.localhost, Config.SERVICE_INSTANCE, >> Config.SERVICE_APP, req.getParameterMap(), new Date().getTime() ); >> logger.debug("Received request: GET"); >> handleGet(req, resp, logTemplate); >> logTemplate.setResponseTimestamp(new Date().getTime()); >> //LoggerService.INSTANCE.addLog(logTemplate); >> } >> >> private void handleGet(HttpServletRequest request, HttpServletResponse >> response, RpcLogTemplate logTemplate) throws IOException { >> Gson gson = new Gson(); >> String param = null; >> param = request.getParameter("id"); >> if(param!= null){ >> logger.info("Query by ID received. All other params would be >> ignored"); >> UserDatatype userDatatype = UserDao.INSTANCE.findById(param); >> if(userDatatype == null){ >> response.setStatus(HttpServletResponse.SC_OK); >> logger.info("Null object returned"); >> return; >> }else{ >> response.setStatus(HttpServletResponse.SC_OK); >> PrintWriter printWriter = response.getWriter(); >> printWriter.write(gson.toJson(userDatatype, >> UserDatatype.class)); >> printWriter.flush(); >> printWriter.close(); >> } >> }else{ >> Map<String, String> queryString = new HashMap<>(); >> //TODO: optimize this >> param = request.getParameter("firstname"); >> if(param != null) >> queryString.put("firstname", param); >> param = request.getParameter("lastname"); >> if(param != null) >> queryString.put("lastname", param); >> param = request.getParameter("phone"); >> if(param != null) >> queryString.put("phone", param); >> param = request.getParameter("signup"); >> if(param != null) >> queryString.put("signup", param); >> UserDatatype[] userDatatypes = >> UserDao.INSTANCE.findByParams(queryString); >> if(userDatatypes == null){ >> response.setStatus(HttpServletResponse.SC_OK); >> logger.info("Null object returned"); >> return; >> }else{ >> response.setStatus(HttpServletResponse.SC_OK); >> PrintWriter printWriter = response.getWriter(); >> printWriter.write(gson.toJson(userDatatypes, >> UserDatatype[].class)); >> printWriter.flush(); >> printWriter.close(); >> } >> } >> } >> >> } >> >> Bootstrap.java >> >> public class Bootstrap extends HttpServlet {@Overridepublic void >> init(ServletConfig config) throws ServletException { >> super.init(config); >> >> BeanConfig beanConfig = new BeanConfig(); >> beanConfig.setVersion("1.0.2"); >> beanConfig.setSchemes(new String[]{"http"}); >> beanConfig.setHost("localhost:7000"); >> beanConfig.setBasePath("/"); >> beanConfig.setResourcePackage("io.swagger.resources"); >> beanConfig.setScan(true); >> beanConfig.setPrettyPrint(true);} >> >> } >> >> All help appreciated. >> > > -- > You received this message because you are subscribed to the Google Groups > "Swagger" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to swagger-swaggersocket+unsubscr...@googlegroups.com <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "Swagger" group. To unsubscribe from this group and stop receiving emails from it, send an email to swagger-swaggersocket+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.