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

Reply via email to