Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Path("/api")
- public class MyServer {
- @GET
- @Consumes(MediaType.APPLICATION_XML)
- @Produces(MediaType.APPLICATION_XML)
- @Path("/my-request")
- public String myRequest(String type,
- @Context HttpServletRequest requestContext,
- @Context HttpServletResponse response) {
- ...
- }
- @Path("/api")
- public class MyServer {
- private ScheduledExecutorService scheduler = ...;
- @GET
- @Consumes(MediaType.APPLICATION_XML)
- @Produces(MediaType.APPLICATION_XML)
- @Path("/my-request")
- public String myRequest(String type,
- @Context HttpServletRequest requestContext,
- @Context HttpServletResponse response,
- @Suspended AsyncResponse asyncResponse) {
- scheduler.schedule(new Runnable() {
- @Override
- public void run() {
- asyncResponse.resume(...)
- }
- }, 5, TimeUnit.SECOND);
- }
- }
- @WebFilter(urlPatterns = "/*", asyncSupported = true)
- @WebListener
- public class HttpFilter implements Filter {
- @Override
- public void init(FilterConfig filterConfig) throws ServletException { }
- @Override
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
- if(denyIP(servletRequest.getRemoteAddr())) {
- AsyncContext asyncContext = servletRequest.startAsync();
- asyncContext.setTimeout(100000);
- }else{
- filterChain.doFilter(servletRequest, servletResponse);
- }
- }
- @Override
- public void destroy() { }
- private boolean denyIP(String address){
- //todo
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement