The web.xml is not the only way to configure it, and I think you’ve went with 
different approach(es). What did you end up using?

 

 

 

From: <[email protected]> on behalf of janet vanderpuye 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Tuesday, 27 December 2016 at 8:21
To: Swagger <[email protected]>
Subject: Re: Cant locate swagger.json on java + embedded jetty + httpservlet + 
swagger integration

 

Hi, 

 

thanks for the feedback. I will create the ticket for the multiple packages. I 
did look at the servlet sample you linked here. I followed that example and 
updated to the latest code i posted above. The only difference now between my 
implemetation and that  sample was I did not use a web.xml to specify the 
mapping. I only have that one custom servlet which has both the @Api annotation 
and the @Info annotation. The @info annotation is picked up and displayed but 
nothing shows up for the @Api contents.

 



On Monday, 26 December 2016 14:23:08 UTC-5, Ron wrote: 

If scanning multiple packages isn’t working for you, you should open a ticket 
on the project. We may have some basic bugs with servlet implementation as 
that’s less commonly used.

 

The scanning should definitely pick up anything that has the @Api annotations 
on it. The only reason it wouldn’t is if they are not in the package you’ve set 
to be scanned.

Have you had a look at the servlet sample?

 

 

 

From: <[email protected]> on behalf of janet vanderpuye 
<[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Friday, 23 December 2016 at 12:25
To: Swagger <[email protected]>
Subject: Re: Cant locate swagger.json on java + embedded jetty + httpservlet + 
swagger integration

 

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: <[email protected]> on behalf of janet vanderpuye 
<[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Thursday, 22 December 2016 at 14:39
To: Swagger <[email protected]>
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: <[email protected]> on behalf of janet vanderpuye 
<[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Thursday, 22 December 2016 at 14:26
To: Swagger <[email protected]>
Subject: Re: Cant locate swagger.json on java + embedded jetty + httpservlet + 
swagger integration

 

Ok thanks.  

 

On a quick scan

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

Reply via email to