package rest;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import javax.ws.rs.core.UriBuilder;
import java.io.IOException;
import java.net.URI;
public class RestServerFactory {
public static HttpServer createHttpServer() throws IOException{
int port =8088;
String host="127.0.0.1";
URI baseuri= UriBuilder.fromUri("http://"+host+"/").port(port).build();
ResourceConfig resourceConfig=new RestResourceConfig();
//resourceConfig.register(CharsetResponserFilter.class);
//resourceConfig.register(ExceptionHandler.class);
return GrizzlyHttpServerFactory.createHttpServer(baseuri,resourceConfig);
}
public static void main(String[] args) {
HttpServer httpServer=null;
try{
httpServer=createHttpServer();
httpServer.start();
Thread.sleep(100000);
}catch (Exception e){
e.printStackTrace();
}
}
}
package rest;
import org.glassfish.jersey.server.ResourceConfig;
public class RestResourceConfig extends ResourceConfig {
public RestResourceConfig(){
packages("rest.controller");
}
}
package rest;
public class JSONResult {
private Object data;
private int code;
private String resultCode;
private boolean success;
private String message;
private String requestId;
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public static JSONResult genFailResult(){
JSONResult result=new JSONResult();
result.setCode(-1);
return result;
}
}
package rest;
import com.example.scheduler.util.ExceptionUtil;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
public class ExceptionHandler implements ExceptionMapper<Exception> {
@Override
public Response toResponse(Exception e) {
JSONResult result=JSONResult.genFailResult();
result.setMessage(ExceptionUtil.buildExceptionInfo(e));
return Response.ok().entity(result).build();
}
}