我正在尝试将vaadin应用程序部署到jetty.
但是当我使用jetty运行时start.jar,它会启动到子文件夹
C:\Users\USERNAME\AppData\Local\Temp\jetty-0.0.0.0-8080-Application.war-....
虽然我把它放进去C:\Program Files\MyApp,但它总是在那里运行 - 包括它保存的文件.
如何告诉jetty从它所在的位置开始,并将所有文件相对于此基础?
我在Windows 7上,我们谈论的是最新的独立码头包.
任何想法都表示赞赏.
Jetty需要一个工作目录.
其查找工作目录的搜索顺序如下:
javax.servlet.context.tempdir属性集,并且如果目录存在,则使用它.${jetty.base}/work目录存在,请使用它(仅对Jetty 9.1+有效)${jetty.home}/work存在目录,请使用它.
${jetty.base}/workorg.eclipse.jetty.webapp.basetempdir属性集,并且该目录存在,请使用它.System.getProperty("java.io.tmpdir")和使用它.最简单的一个是要么#3或#4,只需要创建一个work目录下你${jetty.home}或${jetty.base}和重启码头.
下一个最简单的是#6,java.io.tmpdir在你为Jetty启动JVM时指定你自己的.
[jetty-distribution]$ java -Djava.io.tmpdir=/var/web/work -jar start.jar
Run Code Online (Sandbox Code Playgroud)
其余部分要求您配置已部署的Web应用程序的上下文.
Jetty 7或Jetty 8的示例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
"http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath"><Property name="foo"/></Set>
<Set name="war">/var/web/webapps/foo.war</Set>
<Set name="tempDirectory">/var/web/work/foo</Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)
Jetty 9的示例(只是更改dtd):
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
"http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath"><Property name="foo"/></Set>
<Set name="war">/var/web/webapps/foo.war</Set>
<Set name="tempDirectory">/var/web/work/foo</Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |