在(嵌入式)jetty中,您可以使用ResourceHandler来提供java user.dir中的文件。我想配置一个处理程序,无论请求路径如何,只要调用其handle方法,该处理程序就会始终从此user.dir提供单个文件。但我无法以这种方式配置我的资源处理程序。
你可以看到我在下面尝试的内容。此方法的问题在于,ResourceHandler在内部将请求路径附加到基本资源,并尝试在该相对路径上提供文件。换句话说,当我冲浪到#34; localhost:8080"它提供正确的文件但是当我浏览localhost:8080 / randompath时,它会在我的本地文件系统中搜索user.dir / hello.html / something中的文件,这当然是不存在的,并且会抛出404错误。
任何想法。目前我正在考虑编写自己的处理程序,但也许你们在配置ResourceHandler类方面有更多经验。亲切的问候,并提前感谢您的见解!
import java.io.File;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.resource.Resource;
public class SingleFileServer {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setBaseResource(Resource.newResource(new File("resources", "hello.html")));
server.setHandler(resourceHandler);
server.start();
server.join();
}
}