Embedded Jetty looking for files inside its Jar file

后端 未结 4 1379
误落风尘
误落风尘 2020-12-14 08:15

I successfully embedded Jetty on a test application. It can serve files without issues. Now I want to know if it\'s possible for Jetty to serve files that are inside its own

相关标签:
4条回答
  • 2020-12-14 08:51

    Found the answer and it's not Jetty, it's Winstone. http://winstone.sf.net

    0 讨论(0)
  • 2020-12-14 08:55

    It's pretty simple, if you throw Spring into the equation. And here it goes:

     ...
    
     WebAppContext webAppContext = new WebAppContext();
     webAppContext.setServer(server);
     webAppContext.setContextPath("/");
     webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString());
    
     server.addHandler(webAppContext); 
    
     ....
    

    That will make jetty find the necessary web resources inside the jar file.

    0 讨论(0)
  • 2020-12-14 08:57

    An example is listed on the Jetty embedding page at http://docs.codehaus.org/display/JETTY/Embedding+Jetty

    The trick is to create a File URL to your classpath location.

    String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();
    
    ServletContextHandler context = new ServletContextHandler();
    context.setContextPath("/");
    context.setResourceBase(webDir);
    
    0 讨论(0)
  • 2020-12-14 09:05

    Maybe more of a hack, but aren't JAR files actually ZIPs? (not sure) Could you unzip them into a temporary folder and serve them from there?

    0 讨论(0)
提交回复
热议问题