我正在尝试通过嵌入Jetty来设置一个简单的Web服务,我想要有两个不同的Web服务可用,一个是简单的HTTP服务器,只提供静态内容(最终将成为GWT应用程序),另一个是自定义servlet,可以为应用程序生成JSON状态消息。
我的分发文件夹结构大致如下:
以下是我为配置嵌入式服务器所做的工作。当我访问
“似乎这对于将Jetty嵌入其他项目的人来说是一个常见的任务。那我是不是在正确的方向上?”
“编辑:原来这个问题是由于我误解了Jetty内部计算相对路径的方式所导致的。我正在运行位于dist文件夹上一级的位置,使用“java -jar dist\MyApp.jar”,而Jetty正在寻找“dist\..\html”,而不是正确的“dist\html”。从dist文件夹中运行该jar文件可以解决这个问题。我将回答如何使其在不必从dist目录中运行的情况下正常工作。”
我的分发文件夹结构大致如下:
+ dist/
- MyApp.jar
+ lib/
+ html/
- index.html
以下是我为配置嵌入式服务器所做的工作。当我访问
http://localhost/data/
时,我可以正确地从我的自定义servlet中获取测试输出,但我似乎无法让DefaultServlet找到我的index.html文件。public Webserver(int port) {
server = new Server(port);
ServletContextHandler context = new ServletContextHandler();
context.setResourceBase("./html/");
server.setHandler(context);
JsonDataApiServlet dataServlet = new JsonDataApiServlet();
DefaultServlet staticServlet = new DefaultServlet();
context.addServlet(new ServletHolder(dataServlet), "/data/*");
context.addServlet(new ServletHolder(staticServlet), "/*");
}
“似乎这对于将Jetty嵌入其他项目的人来说是一个常见的任务。那我是不是在正确的方向上?”
“编辑:原来这个问题是由于我误解了Jetty内部计算相对路径的方式所导致的。我正在运行位于dist文件夹上一级的位置,使用“java -jar dist\MyApp.jar”,而Jetty正在寻找“dist\..\html”,而不是正确的“dist\html”。从dist文件夹中运行该jar文件可以解决这个问题。我将回答如何使其在不必从dist目录中运行的情况下正常工作。”