Oh ok. Maybe I need to read up a bit on Jax-rs but I believe application 
was built using only servlets. I had only the Bootstrap class and 
ProfileServlets class, which were written using HttpServlets. Unless one of 
the default package imports was built on Jax-rs. Thanks for the tip, I will 
double check for that.

On Thursday, 22 December 2016 17:30:02 UTC-5, Ron wrote:
>
> What I’m saying is that you can’t use swagger-core for both jax-rs 
> resources and servlets in a single app.
>
>  
>
>  
>
>  
>
> *From: *<[email protected] <javascript:>> on behalf of janet 
> vanderpuye <[email protected] <javascript:>>
> *Reply-To: *"[email protected] <javascript:>" <
> [email protected] <javascript:>>
> *Date: *Thursday, 22 December 2016 at 14:26
> *To: *Swagger <[email protected] <javascript:>>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> Ok thanks.  
>
>  
>
> On a quick scan, I used the BeanConfig class under io.swagger.jaxrs.config 
> in the Bootstrap.java servlet.  Maybe that is where the conflict arises 
> from. Do you have any suggestions on how to initialize swagger servlet( 
> That is the main purpose of the Bootstrap class). 90% the examples and 
> tutorials I saw used the web.xml option and I was trying to avoid that. 
>
> On Thursday, 22 December 2016 17:04:52 UTC-5, Ron wrote: 
>
> The package input should be able to accept comma separated values, so you 
> can try that.
>
>  
>
> You can’t mix servlets and jax-rs resources for scanning as they use 
> different scanners that can’t really co-exist. Do you use both?
>
>  
>
>  
>
>  
>
> *From: *<[email protected]> on behalf of janet vanderpuye <
> [email protected]>
> *Reply-To: *"[email protected]" <
> [email protected]>
> *Date: *Thursday, 22 December 2016 at 13:53
> *To: *Swagger <[email protected]>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> WHOOHOO! We have success! Thank you, guys. You are amazing. I had spent 
> the better part of 16 hours on this before I admitted defeat.  
>
>  
>
> That aside, i have a couple of questions
>
>    1. Does the beanConfig.setResourcePackage("package name") take in only 
>    one package? If so, do I have to move all swagger resources into the 
>    package?What happens to my @ApiModel resource object which I have defined 
>    in another package? This is essentially a datatype so traditionally it is 
>    held in a different package from the servlets.
>    2. I noticed that the documentation skipped  the annotations i had for 
>    the HttpServlet.doGet() method. Is this normal? I was expecting it to list 
>    all functions and types that i had specified with the @ApiOperation, 
>    @ApiResponse, etc annotation. This is my current swagger.json output: 
>
> {
>   "swagger" : "2.0",
>   "info" : {
>     "description" : "Servlet that handles basic CRUD operations to the user 
> profile data source",
>     "version" : "1.0.2",
>     "title" : "User Profile Servlet",
>     "termsOfService" : "XYZ",
>     "contact" : {
>       "name" : "XYZ",
>       "url" : "XYZ",
>       "email" : "XYZ"
>     },
>     "license" : {
>       "name" : "XYZ",
>       "url" : "XYZ"
>     }
>   },
>   "host" : "localhost:7000",
>   "basePath" : "/",
>   "tags" : [ {
>     "name" : "users",
>     "description" : "CRUD operations on user datatype"
>   } ],
>   "schemes" : [ "http", "https" ],
>   "consumes" : [ "application/json" ],
>   "produces" : [ "application/json" ]
> }
>
>  
>
> Many thanks for the help.
>
>
> On Thursday, 22 December 2016 16:10:02 UTC-5, Ron wrote: 
>
> Try keeping only
>
> beanConfig.setResourcePackage("com.coreservices.servlets");
>
>  
>
>  
>
>  
>
>  
>
> *From: *<[email protected]> on behalf of janet vanderpuye <
> [email protected]>
> *Reply-To: *"[email protected]" <
> [email protected]>
> *Date: *Thursday, 22 December 2016 at 13:05
> *To: *Swagger <[email protected]>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> Sorry, corrected package. Same result though 
>
>  
>
> beanConfig.setResourcePackage("com.api.resources");
> beanConfig.setResourcePackage("io.swagger.jaxrs.json");
> beanConfig.setResourcePackage("io.swagger.jaxrs.listing");
> beanConfig.setResourcePackage("com.coreservices.servlets");
> beanConfig.setResourcePackage("com.coreservices.datatypes");
> beanConfig.setScan(true);
> beanConfig.setPrettyPrint(true);
>
>
> On Thursday, 22 December 2016 16:03:57 UTC-5, janet vanderpuye wrote: 
>
> Thanks Ron. I tried that and no success. The new code for the bootstrap 
> class was  
>
> beanConfig.setResourcePackage("com.api.resources");
> beanConfig.setResourcePackage("io.swagger.jaxrs.json");
> beanConfig.setResourcePackage("io.swagger.jaxrs.listing");
> beanConfig.setResourcePackage("com.gh.cive.coreservices.servlets");
> beanConfig.setResourcePackage("com.gh.cive.coreservices.datatypes");
> beanConfig.setScan(true);
> beanConfig.setPrettyPrint(true);
>
>  
>
> Looking at the logs, it shows that at least it picked up my servlet 
> package for scanning. Could it be an error in the way I declared the 
> annotations? Log output is:
>
> 308 [main] INFO Main  - User profile server initialized.
>
> Dec 22, 2016 3:57:50 PM com.sun.jersey.api.core.PackagesResourceConfig init
>
> INFO: Scanning for root resource and provider classes in the packages:
>
>   com.api.resources
>
>   io.swagger.jaxrs.json
>
>   io.swagger.jaxrs.listing
>
>   com.coreservices.servlets
>
>   com.coreservices.datatypes
>
> Dec 22, 2016 3:57:50 PM com.sun.jersey.api.core.ScanningResourceConfig 
> logClasses
>
> INFO: Root resource classes found:
>
>   class io.swagger.jaxrs.listing.AcceptHeaderApiListingResource
>
>   class io.swagger.jaxrs.listing.ApiListingResource
>
> Dec 22, 2016 3:57:50 PM com.sun.jersey.api.core.ScanningResourceConfig 
> logClasses
>
> INFO: Provider classes found:
>
>   class io.swagger.jaxrs.listing.SwaggerSerializers
>
> Dec 22, 2016 3:57:50 PM 
> com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
>
> INFO: Initiating Jersey application, version 'Jersey: 1.19.1 03/11/2016 
> 02:08 PM'
>
> 2277 [main] INFO Main  - user profile service started
>
>
> On Thursday, 22 December 2016 15:47:24 UTC-5, Ron wrote: 
>
> Looking back, you have a Bootstrap class with the line 
>
>     beanConfig.setResourcePackage("io.swagger.resources");
>
>  
>
> Change “io.swagger.resources” to the package(s) of your resources and that 
> should allow it to pick them up and scan them.
>
>  
>
>  
>
>  
>
> *From: *<[email protected]> on behalf of janet vanderpuye <
> [email protected]>
> *Reply-To: *"[email protected]" <
> [email protected]>
> *Date: *Thursday, 22 December 2016 at 12:28
> *To: *Swagger <[email protected]>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> Yeah the Api calls work. I can make calls to my servlets without error. 
> Its just the swagger documentation is not generating any of my annotations.
>
> On Thursday, 22 December 2016 15:25:14 UTC-5, Ron wrote: 
>
> Okay, so it should work.
>
>  
>
> Is your API itself accessible? Can you make any of the API calls 
> successfully?
>
>  
>
>  
>
>  
>
> *From: *<[email protected]> on behalf of janet vanderpuye <
> [email protected]>
> *Reply-To: *"[email protected]" <
> [email protected]>
> *Date: *Thursday, 22 December 2016 at 11:37
> *To: *Swagger <[email protected]>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> In my pom file, I have *1.19.1*
>
>  
>
> <dependency>
>     <groupId>io.swagger</groupId>
>     <artifactId>swagger-annotations</artifactId>
>     <version>1.5.10</version>
> </dependency>
> <dependency>
>     <groupId>com.google.code.gson</groupId>
>     <artifactId>gson</artifactId>
>     <version>2.7</version>
> </dependency>
> <dependency>
>     <groupId>io.swagger</groupId>
>     <artifactId>swagger-jaxrs</artifactId>
>     <version>1.5.10</version>
> </dependency>
> <dependency>
>     <groupId>com.sun.jersey</groupId>
>     <artifactId>jersey-servlet</artifactId>
>     <version>1.19.1</version>
> </dependency>
>
>
> On Thursday, 22 December 2016 14:34:08 UTC-5, Ron wrote: 
>
> Which version of Jersey do you use?
>
>  
>
>  
>
>  
>
> *From: *<[email protected]> on behalf of janet vanderpuye <
> [email protected]>
> *Reply-To: *"[email protected]" <
> [email protected]>
> *Date: *Thursday, 22 December 2016 at 11:10
> *To: *Swagger <[email protected]>
> *Subject: *Re: Cant locate swagger.json on java + embedded jetty + 
> httpservlet + swagger integration
>
>  
>
> 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 <[email protected]> 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
>
> <pre style="backg
>
> -- 
> 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 [email protected] <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 [email protected].
> 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 [email protected] <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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to