我一直在寻找如何让嵌入式码头服务器为包含在同一个 jar 中的少数 html 文件提供服务的方法,但没有成功。这当然有可能吗?
如果不需要的话,我真的不想经历建造和参与战争的麻烦。理想情况下,我也不必创建 WEB-INFO 目录和 web.xml 文件,尽管我读过的所有解决方案似乎都指向这样做并使用 WebAppContext。
我已阅读以下链接,但还没有找到从 jar 运行时设置 ResourceBase 或 BaseResource 属性的方法。
为嵌入式 Jetty 指定 JAR“resources/webapp”文件夹的 ResourceBase 的正确 URL 是什么?
在 DEV 期间通过 IDE 运行很简单,代码工作并且看起来像这样..
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(httpPort);
server.addConnector(connector);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.setWelcomeFiles(new String[]{"welcome.html"});
server.setHandler(context);
ServletHolder holderPwd = new ServletHolder("default", DefaultServlet.class);
holderPwd.setInitParameter("resourceBase","./Relative/Path/To/Html/Files");
holderPwd.setInitParameter("dirAllowed","true");
context.addServlet(holderPwd,"/");
server.start();
server.join();
Run Code Online (Sandbox Code Playgroud)
那么,我是否必须使用 WebAppContext 而不是 ServletContextHandler?如果是,那么我是否也必须添加 webapp/WEB-INFO/web.xml 目录结构?如果我这样做,那么我是否必须打包成一场战争?