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.

Reply via email to