【问题标题】:Restlet 2.3 How to set temp directoryRestlet 2.3 如何设置临时目录
【发布时间】:2015-06-04 09:59:17
【问题描述】:

我正在使用带有 Jetty 分机的 Restlet 2.3。如何设置jar解压到的temp目录?

在另一个项目中只使用码头可以实现:

private void resetTempDirectory(WebAppContext context, String currentDir) {
        File tmpDir = new File(currentDir, ".tmp");
        tmpDir.deleteOnExit();
        tmpDir.mkdir();
        context.setTempDirectory(tmpDir);
    }

【问题讨论】:

    标签: java embedded-jetty restlet-2.0


    【解决方案1】:

    您可以在此处找到 Jetty 服务器连接器的所有支持参数:http://restlet.com/technical-resources/restlet-framework/javadocs/2.3/jse/ext/。 temp目录好像没有参数。

    这里的信息是使用上下文配置服务器连接器的方法:http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/base/connectors

    我查看了 Jetty 扩展。 Restlet 利用类ServerJettyServerCall 分别创建Jetty 服务器和处理请求。我看不到 WebAppContext 类的任何用途。

    也就是说,我不确定 Jetty / Restlet 是否解包 ;-) 你能否给我一些关于你在其他项目中配置 / 使用 Jetty 的方式的提示?谢谢!

    希望对你有帮助 蒂埃里

    【讨论】:

    • 是的,另一个项目实际上被打包为带有嵌入式码头的war。使用WebAppContext webapp = new WebAppContext(warFile, "/");war 添加到码头。它可能只被解包,因为它是 war
    • 是的,事实上,Restlet 并没有为它的 Jetty 扩展使用 war 文件。 Jetty 服务器嵌入在 Restlet“应用程序”中。要嵌入 Restlet 应用程序,您可以使用 servlet 扩展,这样的配置可以在容器级别完成(例如 jetty)。
    【解决方案2】:

    如果要将文件解压到临时目录,只需使用“java.io.tmpdir”系统属性即可。

    当您使用 Jetty 扩展运行 Restlet 应用程序时,您运行的不是 Jetty 的 servlet 容器,而是 Jetty 处理套接字的部分。假设您在 JVM 中运行程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多