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