3

I am trying to get jetty and angular 2 to work together. For that I need the server to rewrite all index.html/... urls to index.html My configuration is like this:

Server server = new Server(8080);
HandlerCollection handlerCollection = new HandlerCollection();

RewriteHandler rewrite = new RewriteHandler(); 
rewrite.setRewriteRequestURI(true);
rewrite.setRewritePathInfo(false);
rewrite.setOriginalPathAttribute("requestedPath");

RewriteRegexRule oldToNew = new RewriteRegexRule();
oldToNew.setRegex("\\/index.html\\/.*");
oldToNew.setReplacement("/index.html");
oldToNew.setTerminating(true);
rewrite.addRule(oldToNew);

ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{"index.html"});
resourceHandler.setResourceBase("./resources");
resourceHandler.setMinMemoryMappedContentLength(-1);
rewrite.setHandler(resourceHandler);

handlerCollection.addHandler(rewrite);

//now I am adding some more Contexthandlers to the handler collection 
ContextHandler contextHandler = new ContextHandler("/service/test");
contextHandler.setHandler(jsonHandler);
handlers.addHandler(contextHandler);
//...

handlerCollection.addHandler(new DefaultHandler());

server.setHandler(handlerCollection);
try {
    server.start();
    server.join();
} catch (Exception e) {
    LOGGER.error("Problem starting server", e);
}

The result is: 1: I can open http://localhost:8080/index.html like expected 2: If i try to open http://localhost:8080/index.html/test jetty says: "Problem accessing /index.html. Reason: Not Found"

Siggi Grünwald
  • 61
  • 1
  • 1
  • 4

0 Answers0