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