Adding a 404 error-page to web.xml should do the trick. Stefan
> Den 21. des. 2014 kl. 21.50 skrev Dmitry Polovka <[email protected]>: > > Hey everybody, i am beginner. Can somebody advise me on how to manage single > page application routing? > > I need DefaultServlet to work as it works now - serve static content, handle > ETags and do other stuff. > Since JS will handle routing, on unknown route to Jetty, Jetty will throw 404 > and i need to intercept these 404 errors > to output content of index.html and let JS do the work. > > What is the best way to do that? > > Launcher.java > ----------------------------------------------------------------------------- > public static void main(String[] args) throws Exception > { > Server server = new Server(); > > // Remove Server:Jetty(9...) from Response Headers > HttpConfiguration httpConfig = new HttpConfiguration(); > httpConfig.setSendServerVersion(false); > HttpConnectionFactory httpFactory = new HttpConnectionFactory(httpConfig); > > ServerConnector connector = new ServerConnector(server, httpFactory); > connector.setPort(8080); > server.addConnector(connector); > > WebAppContext context = new WebAppContext("webapp", "/"); > context.addServlet(new ServletHolder(new DefaultServlet()), "/*"); > > // Map WebSocket to listen on `/ws` > Broker broker = new Broker(); > context.addServlet(new ServletHolder( new Servlet(broker)), "/ws"); > > // Setting up browser caching. Binds params for > org.eclipse.jetty.servlet.DefaultServlet.init() > context.setInitParameter("org.eclipse.jetty.servlet.Default.etags", > "true"); > context.setInitParameter("org.eclipse.jetty.servlet.Default.cacheControl", > "public, max-age=0"); > > // Disallow directory listing > context.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", > "false"); > > // Search for index.html/index.jsp pages > > context.setInitParameter("org.eclipse.jetty.servlet.Default.welcomeServlets", > "true"); > > // Fix for Windows, so Jetty doesn't lock files > if (System.getProperty("os.name").toLowerCase().contains("windows")) { > > context.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", > "false"); > } > > // Will throw an exception when will be unable to start server for some > reason > context.setThrowUnavailableOnStartupException(true); > > server.setHandler(context); > server.start(); > } > ————————————————— > > I also have jersey mapping in web.xml > > <servlet-mapping> > <servlet-name>jersey-api-v1</servlet-name> > <url-pattern>/api/v1/*</url-pattern> > </servlet-mapping> > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe from > this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users _______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
