--------------------------------------------
On Sat, 12/24/16, beaverscesar via Swagger 
<[email protected]> wrote:

 Subject: Re: Cant locate swagger.json on java + embedded jetty + httpservlet + 
swagger integration
 To: [email protected]
 Date: Saturday, December 24, 2016, 2:47 AM
 
 
 --------------------------------------------
 On Fri, 12/23/16, janet vanderpuye <[email protected]>
 wrote:
 
  Subject: Re: Cant locate swagger.json on java + embedded
 jetty + httpservlet + swagger integration
  To: "Swagger" <[email protected]>
  Date: Friday, December 23, 2016, 10:25 PM
  
  Thanks Ron.
  Last night I double-checked and made sure I had
  no jersey resources/dependencies in my code. I also looked
  through the github project link you posted and imitated
 his
  dependencies and method calls without using the web.xml (
 I
  really want to avoid web.xml as a number of the existing
  projects I have run as jars with embedded jetty's and no
  web.xml). The two things I'm faced with now
  are:Adding multiple packages(separated by
  a comma or semi-colon) as a resource through the
  Servlet.setInitParam() method does not work. Multiple
  packages delimited by a comma or otherwise result in the
  default {"swagger":"2.0","info":{"
  version":"1.0.0","title":""}}
  response.Secondly, I think I still have an
  issue in how Swagger scans  my project. When I do get the
  swagger.json to display my annotations, it only captures
 the
  information in the @Info annotation on my servlet.
 Anything
  withing the @Api, @ApiOperation, @ApiResponses, @ApiModel
  are effectively ignored. Unless I'm mistaken, all of
  these are supposed to show up in the swagger.json output
  right? Or do I have to browse to another path to view
 those
  annotations too? I seen some posts use the path
  http://<host>:<port>/swagger-api/<servlet_name>
  but that does not work for me Here is
  what my code for the swagger servlet initialization and
  configuration looks like now. The custom servlet class I
  posted above remains largely the same.
  import
  org.apache.log4j.Logger;
  import
  org.eclipse.jetty.server.Server;
  import
  org.eclipse.jetty.servlet.ServletContextHandler;
  import
  org.eclipse.jetty.servlet.ServletHolder;
  import
  io.swagger.servlet.listing.ApiDeclarationServlet;
  import
  io.swagger.servlet.config.DefaultServletConfig;
  .
  .
  .
  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);
  
  
   //Custom
  servlet
   ServletHolder
  apiservlet =
  servletContextHandler.addServlet(ProfileServlet.class,
  "/user/*");
   apiservlet.setInitOrder(3);
   logger.info("User profile
  server initialized.");
  
  
   // Swagger servlet
  reader
   ServletHolder
  swaggerServlet =
  servletContextHandler.addServlet(DefaultServletConfig.class,
  "/swagger-core");
   swaggerServlet.setInitOrder(2);
   swaggerServlet.setInitParameter("api.version",
  "1.0.0");
   //swaggerServlet.setInitParameter("swagger.resource.package",
  "com.coreservices.servlets,com.coreservices.datatypes");
  NOTE::THIS DOES NOT WORK
   
swaggerServlet.setInitParameter("swagger.resource.package","com.coreservices.servlets");
   swaggerServlet.setInitParameter("swagger.api.basepath",
  "http://localhost:7000";);
  
  
   // Swagger api
  declaration
   servletContextHandler.addServlet(ApiDeclarationServlet.class,
  "/api/*");
   return
  server;
  }
  Thanks once again for the help.
  
  On Thursday, 22 December 2016 17:57:48 UTC-5, Ron
   wrote:Huh, I misread
  it as you using jersey. You need to use a different
  dependency then and a different set up process.
  We don’t
  really have documentation for it, but there’s a sample -
  https://github.com/swagger-
  api/swagger-samples/tree/
  master/java/java-servlet    From:
  <swagger-sw...@ googlegroups.com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@
  googlegroups.com" <swagger-sw...@ googlegroups.com>
  Date: Thursday, 22 December 2016 at 14:39
  To: Swagger <swagger-sw...@
  googlegroups.com>
  Subject: Re: Cant locate swagger.json on java +
  embedded jetty + httpservlet + swagger
  integration 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:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 14:26
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 13:53
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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 questionsDoes 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.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
  onlybeanConfig.setResourcePackage(
  "com.coreservices.servlets");    From:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 13:05
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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
  initINFO: 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.datatypesDec 22, 2016
  3:57:50 PM com.sun.jersey.api.core. ScanningResourceConfig
  logClassesINFO: Root
  resource classes found:  class
  io.swagger.jaxrs.listing.
  AcceptHeaderApiListingResource  class
  io.swagger.jaxrs.listing.
  ApiListingResourceDec 22, 2016
  3:57:50 PM com.sun.jersey.api.core. ScanningResourceConfig
  logClassesINFO: Provider
  classes found:  class
  io.swagger.jaxrs.listing.
  SwaggerSerializersDec 22, 2016
  3:57:50 PM com.sun.jersey.server.impl.
  application.WebApplicationImpl
  _initiateINFO:
  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:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 12:28
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 11:37
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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:
  <swagger-sw...@googlegroups.
 com> on
  behalf of janet vanderpuye <[email protected]>
  Reply-To: "swagger-sw...@googlegroups.
 com"
  <swagger-sw...@googlegroups.
  com>
  Date: Thursday, 22 December 2016 at 11:10
  To: Swagger <swagger-sw...@googlegroups.
 com>
  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 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 filehttp://host:7000/swagger-core 
  ===> HTTP ERROR 405http://host:7000/swagger-core/
  swagger.json ===> HTTP ERROR
 404http://host:7000/user/swagger.
  json ===> HTTP ProfileServlet response, not
  swagger.jsonhttp://host:7000/user
  ===> HTTP ProfileServlet response, not
  swagger.jsonhttp://host:7000/swagger.json
  ===> HTTP ERROR 404http://host:7000/api/swagger.
  json ===> HTTP ERROR 404http://host:7000/
  ===> Static swagger sample page (Pet store), not
  swagger.jsonMain.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(ServletC
  ontextHandler.SESSIONS);   
  servletContextHandler.
  setContextPath("/");   
  server.setHandler(
  servletContextHandler);   
  //Setup
  APIs    
  ServletHolder apiservlet =
  servletContextHandler. addServlet(ProfileServlet.clas
  s,
  "/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 swagger-swaggersocket+
  [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 swagger-swaggersocket+
  [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 swagger-swaggersocket+
  [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 swagger-swaggersocket+
  [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].
  
  For more options, visit
 https://groups.google.com/d/optout.
  in pacate  instalarea noilor corpuri legislative 
 a caror atitudine nu mai sa fi in nici intr-un fel ostila
 domnului si guvernului sau  a coincis si cu jriorarea
 raporturilor dintre Alexandru I. Cuza si M. Kogalniceanu.
 Turneul nfal al primului ministru-in Oltenia  in
 august-septembrie 1864  fusese rau rpretat in anturajul
 principelui. Desi pretutindeni M. Kogalniceanu a subliniat
 itele lui Alexandru I. Cuza in infaptuirea politicii de
 reforme a statului   esul sau personal n-a
 putut fi trecut cu vederea. S-au adaugat  in timp 
 o ia de animozitati personale cu membri ai guvernului sau
 persoane apropiate inului  totul culminand cu demisia
 primului ministru la 26 ianuarie 1865  pe j Alexandru
 I. Cuza a primit-o imediat. Era  incontestabil  o
 greseala politica  andul colaboratorilor sai nu se
 gasea nici o alta personalitate de talia lectuala si
 politica a fostului sau prim sfetnic.
 
 -- 
 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.omiccel mai important  in agricultura  
marii proprietari devin stapani asupra

-- 
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