Jetty不会将我的WAR文件提取到temp目录中。如何阻止其提取或确保将其提取到temp目录?

时间:2018-08-01 14:36:55

标签: java spring-boot jetty embedded-jetty

在Spring-boot应用程序中,如何阻止Jetty提取War文件?

我想阻止Jetty提取War,因为应该提取Jet的目录始终为空。我以为可以阻止Jetty提取并按原样使用WAR文件,但是我已经将jetty-web.xml添加到了/ WEB-INF /目录中,但没有帮助。

jetty-web.xml:

with cte as (<your query here with no order by>)
select col1, col2, col3,
       col3 * 100.0 / sum(col3) over (partition by col1) as percentage
from cte;

Jetty似乎没有使用此设置。

码头日志: 已开始o.s.b.c.e.j.JettyEmbeddedWebAppContext@bfe845 {/ app,[file:///apps/app-1/tmp/jetty-docbase.8731890992893272407.8888/],可用}

但是目录:/apps/app-1/tmp/jetty-docbase.8731890992893272402407.8888/始终为空。

Jetty为什么不填充此目录?

任何帮助将不胜感激。

预先感谢, 李

1 个答案:

答案 0 :(得分:0)

/apps/app-1/tmp/jetty-docbase.8731890992893272407.8888/是该Web应用程序的工作目录。

如果您设置<Set name="extractWAR">false</Set>,则它仅在运行时用于工作文件,而不用于Webapp的提取内容。这是强制性的,是Servlet规范的一部分,并且无法避免。

您的XML不完整(缺少战争参考和contextPath设置)且无效(dtd参考)。

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC
        "-//Jetty//Configure//EN"
        "http://www.eclipse.org/jetty/configure_9_3.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="war">/path/to/your/app.war</Set>
    <Set name="contextPath">/myapp</Set>
    <Set name="extractWAR">false</Set>
</Configure>