0
我正在嘗試創建一個具有REST API並可以提供靜態html等文檔的Web服務。目前,我已經得到了REST(新澤西州2.17)API工作正常,但我掙扎就可以提供資源,比如我的index.html歡迎文件嵌入式Jetty REST服務
項目結構
src
--main
----java
------resource
--------RestResource.java
------app
--------LocalRunner.java
----webapp
------index.html
LocalRunner.java
public class LocalRunner {
private final Server server;
public LocalRunner() {
server = new Server(8315);
}
public void start() throws Exception {
// REST
WebAppContext restHandler = new WebAppContext();
restHandler.setResourceBase("./");
restHandler.setClassLoader(Thread.currentThread().getContextClassLoader());
ServletHolder restServlet = restHandler.addServlet(ServletContainer.class, "/rest/*");
restServlet.setInitOrder(0);
restServlet.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "resource");
// Web
ResourceHandler webHandler = new ResourceHandler();
webHandler.setResourceBase("./");
webHandler.setWelcomeFiles(new String[]{"index.html"});
// Server
HandlerCollection handlers = new HandlerCollection();
handlers.addHandler(restHandler);
handlers.addHandler(webHandler);
server.setHandler(handlers);
server.start();
}
public static void main(String[] args) throws Exception {
new LocalRunner().start();
}
}
擊中localhost:8315/rest/someRestEndpoint
工作正常,但如果我嘗試只打localhost:8315
我得到一個目錄結構時,我希望我的index.html
歡迎文件。我究竟做錯了什麼?
注意我沒有使用WEB.XML,因爲我試圖在以上的類中執行所有配置。
依賴關係,如果有幫助(搖籃)
def jettyVersion = '7.2.2.v20101205';
compile "org.eclipse.jetty:jetty-server:${jettyVersion}"
compile "org.eclipse.jetty:jetty-webapp:${jettyVersion}"
compile "org.eclipse.jetty:jetty-servlet:${jettyVersion}"
def jerseyVersion = '2.17'
compile "org.glassfish.jersey.core:jersey-server:${jerseyVersion}"
compile "org.glassfish.jersey.containers:jersey-container-servlet-core:${jerseyVersion}"
[Jetty 7 is EOL(End of Life)](https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00069.html) - 考慮儘快升級(其不安全以運行EOL服務器開放的互聯網) –