JAX RS - Embedded Jetty and Swagger not getting json -
with below code able call api with:
http://localhost:8080/test/myapi/squareroot?input=2
and output
{ "action":"square root", "input":2.0,"output":1.4142135623730951 }
but when try call
http://localhost:8080/test/swagger.json
i getting 404 error. please me understand error.
package com.krish.som.controller; import io.swagger.annotations.api; import io.swagger.annotations.apioperation; import javax.ws.rs.get; import javax.ws.rs.path; import javax.ws.rs.produces; import javax.ws.rs.queryparam; import javax.ws.rs.core.mediatype; @path("myapi") @api(value = "/squareroot", description = "web services browse squareroot") public class calculator { @get @path("squareroot") @apioperation(value = "return 1 entity", notes = "returns 1 entity @ random", response = result.class) @produces(value = mediatype.application_json) public result squareroot(@queryparam("input") double input){ result result = new result("square root"); result.setinput(input); result.setoutput(math.sqrt(result.getinput())); return result; } @get @path("square") @produces(mediatype.application_json) public result square(@queryparam("input") double input){ result result = new result("square"); result.setinput(input); result.setoutput(result.getinput()*result.getinput()); return result; } static class result{ double input; double output; string action; public result(){} public result(string action) { this.action = action; } public string getaction() { return action; } public void setaction(string action) { this.action = action; } public double getinput() { return input; } public void setinput(double input) { this.input = input; } public double getoutput() { return output; } public void setoutput(double output) { this.output = output; } } } package com.krish.som.controller; import com.krish.som.controller.calculator; import io.swagger.jaxrs.config.defaultjaxrsconfig; import org.eclipse.jetty.server.server; import org.eclipse.jetty.servlet.servletcontexthandler; import org.eclipse.jetty.servlet.servletholder; import org.glassfish.jersey.servlet.servletcontainer; public class somserver { public somserver() { } public static void main(string[] args) throws exception { server server = new server(8080); servletcontexthandler context = new servletcontexthandler(1); context.setcontextpath("/test"); server.sethandler(context); servletholder apiservlet = context.addservlet(servletcontainer.class, "/*"); apiservlet.setinitparameter("jersey.config.server.provider.classnames", calculator.class.getcanonicalname()); apiservlet.setinitorder(0); apiservlet.setinitparameter("com.sun.jersey.config.property.packages", "com.krish.som.controller;io.swagger.jaxrs.json;io.swagger.jaxrs.listing;io.swagger.resources"); servletholder swaggerservlet = context.addservlet(defaultjaxrsconfig.class, "/swagger-core"); swaggerservlet.setinitorder(1); server.start(); server.join(); } } <?xml version="1.0" encoding="utf-8"?> <project xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://maven.apache.org/pom/4.0.0" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.krish</groupid> <artifactid>som</artifactid> <version>1.0-snapshot</version> <dependencies> <dependency> <groupid>org.eclipse.jetty</groupid> <artifactid>jetty-server</artifactid> <version>9.2.3.v20140905</version> </dependency> <dependency> <groupid>org.eclipse.jetty</groupid> <artifactid>jetty-servlet</artifactid> <version>9.2.3.v20140905</version> </dependency> <dependency> <groupid>org.glassfish.jersey.core</groupid> <artifactid>jersey-server</artifactid> <version>2.7</version> </dependency> <dependency> <groupid>org.glassfish.jersey.containers</groupid> <artifactid>jersey-container-servlet-core</artifactid> <version>2.7</version> </dependency> <dependency> <groupid>org.glassfish.jersey.containers</groupid> <artifactid>jersey-container-jetty-http</artifactid> <version>2.7</version> </dependency> <dependency> <groupid>org.glassfish.jersey.media</groupid> <artifactid>jersey-media-moxy</artifactid> <version>2.7</version> </dependency> <dependency> <groupid>io.swagger</groupid> <artifactid>swagger-jersey2-jaxrs</artifactid> <version>1.5.3</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-api</artifactid> <version>${slf4j-version}</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-log4j12</artifactid> <version>${slf4j-version}</version> </dependency> </dependencies> <properties> <slf4j-version>1.7.12</slf4j-version> </properties> </project>
Comments
Post a Comment