java - Jetty 嵌入式服务器 - 更改部署 war 文件的路径

标签 java jetty embedded-jetty jetty-9

我正在使用 Jetty 9.2 在嵌入式 Jetty 服务器中运行一个 war 文件。我没有“web.xml”,没有 webapp 文件夹,只有我要部署的 war 文件。我正在运行 war 文件,这段代码没有任何问题:

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

public class DeployWar {

public static void main(String[] args) {

    Server server = new Server(9090);
    WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/");

    webapp.setWar("test.war");
    server.setHandler(webapp);

    try {
        server.start();
        System.out.println("Press any key to stop the server...");
        System.in.read(); System.in.read();
        server.stop();
    } catch (Exception ex) {
        System.out.println("error");
    }

    System.out.println("Server stopped");
}
}

“问题”是 war 部署(解压)在一个预定义的位置(比如 C:\Users\MyPCname\AppData\Local\Temp\jetty...),我想将其更改为不同的位置,让我们说到我项目的 bin 文件夹。

这可能吗?

最佳答案

实际上,我的问题的答案非常简单。 jetty 已经提供了所需的功能。我只需要在“setWar”方法上方添加这些行:

File webappsFolder = new File("jettyWebapps/");
webappsFolder.mkdirs();
webapp.setTempDirectory(webappsFolder);

here你可以看到 jetty 文档。

关于java - Jetty 嵌入式服务器 - 更改部署 war 文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31182338/

相关文章:

java - Maven 多模块项目 - 从另一个模块启动模块?

java - Jetty - 使用 jetty 默认 servlet 是否安全

java - 在嵌入式 Jetty 中部署 ear

java - 如何使用 Java 从 Internet 读取文本文件?

Java:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

java - 沉默 log4j

maven - 使用 maven-jetty-plugin 进行 logback 日志记录

java - jetty websockets 仅服务器 - 无 http 服务器 - 删除 404 错误

java - 上下文 c.g.g.d.s.j.WebAppContextWithReload 启动失败

Java LibGDX 更新和绘制方法