package org.opentripplanner.standalone; import java.net.URI; import java.net.URISyntaxException; import com.sun.jersey.spi.container.ContainerRequest; import com.sun.jersey.spi.container.ContainerRequestFilter; /** * Jersey filter that rewrites URIs to remove /ws/ if present. * Grizzly HTTPServer does not like multi-level context paths like * /opentripplanner-api-webapp/ws/ so we have to register the handler only one level deep and * ignore the second level. */ public class RewriteFilter implements ContainerRequestFilter { @Override public ContainerRequest filter(ContainerRequest containerRequest) { try { // Calling setURIs method clears the cached method, path etc. containerRequest.setUris(containerRequest.getBaseUri(), new URI(containerRequest.getRequestUri().toString().replace("/ws/", "/"))); } catch (URISyntaxException e) { e.printStackTrace(); } return containerRequest; } }