我使用spark java作为小型Web服务器。在我的主要课程中,我设置了我需要的东西:
public static void startServer()
{
if (!starting && !stopping)
{
starting = true;
// Initialize server
port(port);
secure(keystoreLocation, keystorePass, null, null);
// Register all routes
initRoutes();
// Start server
init();
starting = false;
}
}
在initRoutes中,我有:
public static void initRoutes()
{
Spark.staticFileLocation("/public");
}
当我运行该代码时,我能够导航到localhost并查看我的index.html页面的内容,该页面位于src / main / resources / public中。我甚至在日志中看到了这一点:
10:24:17.151 [INFO ] - StaticResourceHandler configured with folder = /public
但是,当我运行一个重启服务器的进程时,staticFileLocation似乎丢失了。
这是我的stopServer方法和restartServer方法。
public static void stopServer()
{
if (!stopping && !starting)
{
stopping = true;
stop();
try
{
// This is temporary until the ability to wait for the service to
// stop comes along
Thread.sleep(10 * 1000);
}
catch (InterruptedException ex)
{
LogUtil.warn("Failed to wait while server shuts down", ex);
}
stopping = false;
}
}
public static void restartServer()
{
stopServer();
startServer();
}
日志显示以下行:
10:33:52.768 [WARN ] - Static file location has already been set
但是当我再次尝试访问主页时,我得到了404并且日志说明了这一点:
10:34:22.260 [INFO ] - The requested route [/] has not been mapped in Spark for Accept: [text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8]
我的其他路线(为简洁起见省略)重新初始化就好了。我可以重新启动服务器并仍然可以毫无问题地导航到它们。
我不需要能够更改静态文件位置,但我真的希望在重新启动服务器之间保持该设置。也许这就是我重启的方式?我无法找到有关正确流程的大量信息。
非常感谢先进的