2016-12-06 38 views
0

我已经将Jetty嵌入到我的Java应用程序中,并且创建了一个可执行的jar文件。当我从cmd执行jar文件时jetty服务器启动了。在Jetty服务器入门级。如何判断码头将部分jar文件提取到其上下文temp位置

protected void configureWebApp() throws IOException { 
     File webAppDir=new File(getClass().getProtectionDomain().getCodeSource().getLocation()); 

     WebAppContext context = new WebAppContext(webAppDir.getPath(), "/"); 
     resetTempDirectory(context, currentDir); 
     context.setInitParameter("development", "false"); 
     server.setHandler(context); 
     } 

protected void resetTempDirectory(WebAppContext context, File currentDir) throws IOException { 
     File workDir; 
     if (workPath != null) { 
      workDir = new File(workPath); 
     } else { 
      workDir = new File(currentDir, "work"); 
     } 
     FileUtils.deleteDirectory(workDir); 
     context.setTempDirectory(workDir); 
    } 
cmd webAppDir设定的路径上运行时

指着我的应用程序jar.so码头将提取所有jar内容到其临时directory.It好像我浪费了资源,减缓我的应用程序启动。

在我的罐子它包含Web相关型号stuff.My问题是一个webApp文件夹,

  1. 我怎么能指示码头告知只能提取webApp folder到 临时目录?
  2. 我可以关闭码头提取到温度指示,并写我自己的方法来提取我需要的文件夹,并指出该文件夹作为码头临时 目录。我不知道这是一个好主意。

我是新手到码头请让我知道如何做到这一点。

回答

1

所以你不想让Servlet Spec temp目录做它的事情,但仍然使用Servlet Spec?

参见prior answer on how the temp directory works

选项#1

这是嵌入式码头,跳过WebAppContext(及其Servlet规范规定的行为),并配置一切通过处理程序(如ServletContextHandler)。

您将失去“发现”组件的能力,并且没有字节码扫描,但是您将处于最终控制状态,启动时间将在亚秒时间内测量。

选项#2

如果这仅仅是一个启动问题,则忽略该项临时目录问题,请运行quickstart生成servlet的部署之前显现出来,并使用(预建)快速入门启动WebAppContext元数据。

相关问题