Skip to main content
summaryrefslogtreecommitdiffstats
blob: 5897cc9bf43ddf12ff70fd67e0eac65dff7cd1b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Managing Jetty Base and Jetty Home</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><meta name="keywords" content="jetty, servlet, servlet-api, cometd, http, spdy, websocket, eclipse, maven, java, server, software"><link rel="home" href="index.html" title="Jetty : The Definitive Reference"><link rel="up" href="startup.html" title="Chapter&nbsp;9.&nbsp;Starting Jetty"><link rel="prev" href="startup-modules.html" title="Managing Startup Modules"><link rel="next" href="start-jar.html" title="Using start.jar"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><script type="text/javascript" src="js/shCore.js"></script><script type="text/javascript" src="js/shBrushJava.js"></script><script type="text/javascript" src="js/shBrushXml.js"></script><script type="text/javascript" src="js/shBrushBash.js"></script><script type="text/javascript" src="js/shBrushJScript.js"></script><script type="text/javascript" src="js/shBrushSql.js"></script><script type="text/javascript" src="js/shBrushProperties.js"></script><script type="text/javascript" src="js/shBrushPlain.js"></script><link type="text/css" rel="stylesheet" href="css/shCore.css"><link type="text/css" rel="stylesheet" href="css/shThemeEclipse.css"><link type="text/css" rel="stylesheet" href="css/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
            Version: 9.2.2-SNAPSHOT</span></td><td style="width: 50%"><script type="text/javascript">  (function() {
            var cx = '016459005284625897022:obd4lsai2ds';
            var gcse = document.createElement('script');
            gcse.type = 'text/javascript';
            gcse.async = true;
            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
            '//www.google.com/cse/cse.js?cx=' + cx;
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(gcse, s);
            })();
          </script><gcse:search></gcse:search></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Managing Jetty Base and Jetty Home</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="startup-modules.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;9.&nbsp;Starting Jetty<br><a accesskey="p" href="index.html"><i class="icon-home"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="start-jar.html">Next <i class="icon-chevron-right"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/">Contact the core Jetty developers at
          <span class="website">www.webtide.com</span></a></h5><p>
 private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ...
 scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
      </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="startup-base-and-home"></a>Managing Jetty Base and Jetty Home</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="startup-base-and-home.html#demo-base">Demo-Base in the Jetty Distribution</a></span></dt><dt><span class="section"><a href="startup-base-and-home.html#d0e8127">Declaring Jetty Base</a></span></dt></dl></div><p>Starting with Jetty 9.1, it is now possible to maintain a separation
  between the binary installation of the standalone Jetty (known as
  <code class="filename">${jetty.home}</code>), and the customizations for your
  specific environment (known as <code class="filename">${jetty.base}</code>).</p><div class="variablelist"><dl><dt><span class="term">Jetty Base</span></dt><dd><p>Also known as the <code class="filename">${jetty.base}</code>
        property</p><p>This is the location for your configurations and customizations
        to the Jetty distribution.</p></dd><dt><span class="term">Jetty Home</span></dt><dd><p>Also known as the <code class="filename">${jetty.home}</code>
        property.</p><p>This is the location for the Jetty distribution binaries,
        default XML IoC configurations, and default module definitions.</p></dd></dl></div><p>Potential configuration is resolved from these 2 directory
  locations.</p><div class="variablelist"><a name="base-vs-home-resolution"></a><p class="title"><b>Configuration Resolution Rules</b></p><dl><dt><span class="term">Check Jetty Base</span></dt><dd><p>If the referenced configuration exists, relative to the defined
        Jetty Base, use it.</p></dd><dt><span class="term">Check Jetty Home</span></dt><dd><p>If the referenced configuration exists, relative to the defined
        Jetty Home, use it.</p></dd><dt><span class="term">Use java.io.File(String pathname) Logic</span></dt><dd><p>Lastly, use the reference as a <code class="code"><a class="code" href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String)" target="_top">java.io.File(String
        pathname)</a></code> reference, following the default resolution rules
        outlined by that constructor.</p><p>In brief, the reference will be used as-is, be it relative (to
        current working directory, aka ${user.dir}) or absolute path, or even
        network reference (such as on Windows and use of UNC paths).</p></dd></dl></div><p>For more details on how startup with start.jar works, see <a class="link" href="">Using start.jar: Executing</a></p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="demo-base"></a>Demo-Base in the Jetty Distribution</h3></div></div></div><p>The Jetty Distribution comes with an example ${jetty.base} which
    enables the various demonstration webapps and server
    configurations.</p><p>How to use the demo-base directory as a Jetty Base directory.</p><div class="screenexample"><pre class="screen">[jetty-distribution-9.2.2-SNAPSHOT]$ ls -la
total 496
drwxrwxr-x 11 user group   4096 Oct  8 15:23 ./
drwxr-xr-x 14 user group   4096 Oct  8 13:04 ../
drwxrwxr-x  2 user group   4096 Oct  8 06:54 bin/
drwxrwxr-x  6 user group   4096 Oct  8 06:54 demo-base/
drwxrwxr-x  2 user group   4096 Oct 11 15:14 etc/
drwxrwxr-x 11 user group   4096 Oct  8 06:54 lib/
-rw-rw-r--  1 user group  30012 Sep 30 19:55 license-eplv10-aslv20.html
drwxrwxr-x  2 user group   4096 Oct  8 06:54 logs/
drwxrwxr-x  2 user group   4096 Oct  8 06:54 modules/
-rw-rw-r--  1 user group   6262 Sep 30 19:55 notice.html
-rw-rw-r--  1 user group   1249 Sep 30 19:55 README.TXT
drwxrwxr-x  2 user group   4096 Oct  8 06:54 resources/
drwxrwxr-x  2 user group   4096 Oct  8 06:54 start.d/
-rw-rw-r--  1 user group   1780 Sep 30 19:55 start.ini
-rw-rw-r--  1 user group  71921 Sep 30 19:55 start.jar
-rw-rw-r--  1 user group 336468 Sep 30 19:55 VERSION.txt
drwxrwxr-x  2 user group   4096 Oct  8 06:54 webapps/
[jetty-distribution-9.2.2-SNAPSHOT]$ cd demo-base
[demo-base]$ java -jar ../start.jar
2013-10-16 09:08:47.800:WARN::main: demo test-realm is deployed. DO NOT USE IN PRODUCTION!
2013-10-16 09:08:47.802:INFO:oejs.Server:main: jetty-${project.version}
2013-10-16 09:08:47.817:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/user/jetty-distribution-9.2.2-SNAPSHOT/demo-base/webapps/] at interval 1
2013-10-16 09:08:48.072:WARN::main: async-rest webapp is deployed. DO NOT USE IN PRODUCTION!
...
</pre></div><p>As you can see above, you are executing the demo-base configuration
    using the Jetty Base concepts.</p><p>If you want to see what the Jetty Base looks like without executing
    Jetty, you can simply list the configuration</p><div class="screenexample"><pre class="screen">[my-base]$ java -jar ../start.jar --list-config

Java Environment:
-----------------
 java.home=/usr/lib/jvm/jdk-7u21-x64/jre
 java.vm.vendor=Oracle Corporation
 java.vm.version=23.21-b01
 java.vm.name=Java HotSpot(TM) 64-Bit Server VM
 java.vm.info=mixed mode
 java.runtime.name=Java(TM) SE Runtime Environment
 java.runtime.version=1.7.0_21-b11
 java.io.tmpdir=/tmp

Jetty Environment:
-----------------
 jetty.home=/home/user/jetty-distribution-9.1.0-DEMO
 jetty.base=/home/user/jetty-distribution-9.1.0-DEMO/demo-base
 jetty.version=9.1.0-DEMO

JVM Arguments:
--------------
 (no jvm args specified)

System Properties:
------------------
 jetty.base = /home/user/jetty-distribution-9.1.0-DEMO/demo-base
 jetty.home = /home/user/jetty-distribution-9.1.0-DEMO

Properties:
-----------
 demo.realm = etc/realm.properties
 https.port = 8443
 https.timeout = 30000
 jaas.login.conf = etc/login.conf
 jetty.dump.start = false
 jetty.dump.stop = false
 jetty.keymanager.password = OBF:1u2u1wml1z7s1z7a1wnl1u2g
 jetty.keystore = etc/keystore
 jetty.keystore.password = OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
 jetty.port = 8080
 jetty.secure.port = 8443
 jetty.truststore = etc/keystore
 jetty.truststore.password = OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
 org.eclipse.jetty.websocket.jsr356 = false
 threads.max = 200
 threads.min = 10
 threads.timeout = 60000

Jetty Server Classpath:
-----------------------
Version Information on 42 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
      changes to the --module=name command line options will be reflected here.
 0:               9.1.0-DEMO | ${jetty.home}/lib/jetty-client-9.1.0-DEMO.jar
 1:      1.4.1.v201005082020 | ${jetty.base}/lib/ext/javax.mail.glassfish-1.4.1.v201005082020.jar
 2:               9.1.0-DEMO | ${jetty.base}/lib/ext/test-mock-resources-9.1.0-DEMO.jar
 3:                    (dir) | ${jetty.home}/resources
 4:                    3.1.0 | ${jetty.home}/lib/servlet-api-3.1.jar
 5:                  3.1.RC0 | ${jetty.home}/lib/jetty-schemas-3.1.jar
 6:               9.1.0-DEMO | ${jetty.home}/lib/jetty-http-9.1.0-DEMO.jar
 7:               9.1.0-DEMO | ${jetty.home}/lib/jetty-continuation-9.1.0-DEMO.jar
 8:               9.1.0-DEMO | ${jetty.home}/lib/jetty-server-9.1.0-DEMO.jar
 9:               9.1.0-DEMO | ${jetty.home}/lib/jetty-xml-9.1.0-DEMO.jar
10:               9.1.0-DEMO | ${jetty.home}/lib/jetty-util-9.1.0-DEMO.jar
11:               9.1.0-DEMO | ${jetty.home}/lib/jetty-io-9.1.0-DEMO.jar
12:               9.1.0-DEMO | ${jetty.home}/lib/jetty-jaas-9.1.0-DEMO.jar
13:               9.1.0-DEMO | ${jetty.home}/lib/jetty-jndi-9.1.0-DEMO.jar
14:      1.1.0.v201105071233 | ${jetty.home}/lib/jndi/javax.activation-1.1.0.v201105071233.jar
15:      1.4.1.v201005082020 | ${jetty.home}/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar
16:                      1.2 | ${jetty.home}/lib/jndi/javax.transaction-api-1.2.jar
17:               9.1.0-DEMO | ${jetty.home}/lib/jetty-rewrite-9.1.0-DEMO.jar
18:               9.1.0-DEMO | ${jetty.home}/lib/jetty-security-9.1.0-DEMO.jar
19:               9.1.0-DEMO | ${jetty.home}/lib/jetty-servlet-9.1.0-DEMO.jar
20:                    3.0.0 | ${jetty.home}/lib/jsp/javax.el-3.0.0.jar
21:      1.2.0.v201105211821 | ${jetty.home}/lib/jsp/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar
22:                    2.3.2 | ${jetty.home}/lib/jsp/javax.servlet.jsp-2.3.2.jar
23:                    2.3.1 | ${jetty.home}/lib/jsp/javax.servlet.jsp-api-2.3.1.jar
24:                    2.3.3 | ${jetty.home}/lib/jsp/jetty-jsp-jdt-2.3.3.jar
25:      1.2.0.v201112081803 | ${jetty.home}/lib/jsp/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar
26:   3.8.2.v20130121-145325 | ${jetty.home}/lib/jsp/org.eclipse.jdt.core-3.8.2.v20130121.jar
27:               9.1.0-DEMO | ${jetty.home}/lib/jetty-plus-9.1.0-DEMO.jar
28:               9.1.0-DEMO | ${jetty.home}/lib/jetty-webapp-9.1.0-DEMO.jar
29:               9.1.0-DEMO | ${jetty.home}/lib/jetty-annotations-9.1.0-DEMO.jar
30:                      4.1 | ${jetty.home}/lib/annotations/asm-4.1.jar
31:                      4.1 | ${jetty.home}/lib/annotations/asm-commons-4.1.jar
32:                      1.2 | ${jetty.home}/lib/annotations/javax.annotation-api-1.2.jar
33:               9.1.0-DEMO | ${jetty.home}/lib/jetty-deploy-9.1.0-DEMO.jar
34:                      1.0 | ${jetty.home}/lib/websocket/javax.websocket-api-1.0.jar
35:               9.1.0-DEMO | ${jetty.home}/lib/websocket/javax-websocket-client-impl-9.1.0-DEMO.jar
36:               9.1.0-DEMO | ${jetty.home}/lib/websocket/javax-websocket-server-impl-9.1.0-DEMO.jar
37:               9.1.0-DEMO | ${jetty.home}/lib/websocket/websocket-api-9.1.0-DEMO.jar
38:               9.1.0-DEMO | ${jetty.home}/lib/websocket/websocket-client-9.1.0-DEMO.jar
39:               9.1.0-DEMO | ${jetty.home}/lib/websocket/websocket-common-9.1.0-DEMO.jar
40:               9.1.0-DEMO | ${jetty.home}/lib/websocket/websocket-server-9.1.0-DEMO.jar
41:               9.1.0-DEMO | ${jetty.home}/lib/websocket/websocket-servlet-9.1.0-DEMO.jar

Jetty Active XMLs:
------------------
 ${jetty.home}/etc/jetty.xml
 ${jetty.home}/etc/jetty-http.xml
 ${jetty.home}/etc/jetty-jaas.xml
 ${jetty.home}/etc/jetty-rewrite.xml
 ${jetty.home}/etc/jetty-ssl.xml
 ${jetty.home}/etc/jetty-https.xml
 ${jetty.home}/etc/jetty-plus.xml
 ${jetty.home}/etc/jetty-annotations.xml
 ${jetty.home}/etc/jetty-deploy.xml
 ${jetty.base}/etc/demo-rewrite-rules.xml
 ${jetty.base}/etc/test-realm.xml
</pre></div><p>This demonstrates the powerful <code class="literal">--list-config</code>
    command line option and how you can use it to see what the configuration
    will look like when starting Jetty. From the Java environment, to the
    system properties, to the classpath, and finally the Active Jetty IoC XML
    used to build up your Jetty server configuration.</p><p>Of note, is that the output will make it known where the
    configuration elements came from, be it in either in
    <code class="literal">${jetty.home}</code> or
    <code class="literal">${jetty.base}</code>.</p><p>If you look at the ${jetty.base}/start.ini you will see something
    like the following.</p><div class="screenexample"><pre class="screen">[my-base]$ cat start.ini
# Enable security via jaas, and configure it
--module=jaas
jaas.login.conf=etc/login.conf

# Enable rewrite examples
--module=rewrite
etc/demo-rewrite-rules.xml

# Websocket chat examples needs websocket enabled
# Don't start for all contexts (set to true in test.xml context)
org.eclipse.jetty.websocket.jsr356=false
--module=websocket

# Create and configure the test realm
etc/test-realm.xml
demo.realm=etc/realm.properties

# Initialize module server
--module=server
threads.min=10
threads.max=200
threads.timeout=60000
jetty.dump.start=false
jetty.dump.stop=false

--module=deploy
--module=jsp
--module=ext
--module=resources
--module=client
--module=annotations
</pre></div><p>The ${jetty.base}/start.ini is the main startup configuration entry
    point for Jetty. In this example you will see that we are enabling a few
    modules for Jetty, specifying some properties, and also referencing some
    Jetty IoC XML files (namely the
    <code class="filename">etc/demo-rewrite-rules.xml</code> and
    <code class="filename">etc/test-realm.xml</code> files)</p><p>When Jetty's <code class="filename">start.jar</code> resolves the entries in
    the start.ini, it will follow the <a class="link" href="startup-base-and-home.html#base-vs-home-resolution" title="Configuration Resolution Rules">resolution rules above</a>.</p><p>For example, the reference to
    <code class="filename">etc/demo-rewrite-rules.xml</code> was found in
    <code class="filename">${jetty.base}/etc/demo-rewrite-rules.xml</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8127"></a>Declaring Jetty Base</h3></div></div></div><p>The Jetty Distribution's start.jar is the component that manages the
    behavior of this separation.</p><p>The Jetty start.jar and XML files always assume that both
    <code class="filename">${jetty.home}</code> and <code class="filename">${jetty.base}</code>
    are defined when starting Jetty.</p><p>You can opt to manually define the
    <code class="filename">${jetty.home}</code> and <code class="filename">${jetty.base}</code>
    directories, such as this:</p><div class="screenexample"><pre class="screen">[jetty-distribution-9.2.2-SNAPSHOT]$ pwd
/home/user/jetty-distribution-9.2.2-SNAPSHOT
[jetty-distribution-9.2.2-SNAPSHOT]$ java -jar start.jar \
    jetty.home=/home/user/jetty-distribution-9.2.2-SNAPSHOT \
    jetty.base=/home/user/my-base
2013-10-16 09:08:47.802:INFO:oejs.Server:main: jetty-${project.version}
2013-10-16 09:08:47.817:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/user/my-base/webapps/] at interval 1
...
</pre></div><p>Or you can declare one directory and let the other one be
    discovered.</p><p>The following example uses default discovery of
    <code class="filename">${jetty.home}</code> by using the parent directory of
    wherever start.jar itself is, and a manual declaration of
    <code class="filename">${jetty.base}</code>.</p><div class="screenexample"><pre class="screen">[jetty-distribution-9.2.2-SNAPSHOT]$ pwd
/home/user/jetty-distribution-9.2.2-SNAPSHOT
[jetty-distribution-9.2.2-SNAPSHOT]$ java -jar start.jar jetty.base=/home/user/my-base
2013-10-16 09:08:47.802:INFO:oejs.Server:main: jetty-${project.version}
2013-10-16 09:08:47.817:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/user/my-base/webapps/] at interval 1
...
</pre></div><p>But Jetty recommends that you always start Jetty by sitting in the
    directory that is your ${jetty.base} and starting Jetty by referencing the
    start.jar remotely.</p><p>The following demonstrates this by allowing default discovery of
    <code class="filename">${jetty.home}</code> via locating the
    <code class="filename">start.jar</code>, and using the <code class="literal">user.dir</code>
    System Property for <code class="filename">${jetty.base}</code>.</p><div class="screenexample"><pre class="screen">[jetty-distribution-9.2.2-SNAPSHOT]$ pwd
/home/user/jetty-distribution-9.2.2-SNAPSHOT
[jetty-distribution-9.2.2-SNAPSHOT]$ cd /home/user/my-base
[my-base]$ java -jar /home/user/jetty-distribution-9.2.2-SNAPSHOT/start.jar
2013-10-16 09:08:47.802:INFO:oejs.Server:main: jetty-${project.version}
2013-10-16 09:08:47.817:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/home/user/my-base/webapps/] at interval 1
...
</pre></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="icon-plus-sign-alt"></i> Important</h3><p>Be aware of the <code class="literal">user.dir</code> system property, it
      can only be safely set when the JVM starts, and many 3rd party libraries
      (especially logging) use this system property.</p><p>It is strongly recommended that you sit in the directory that is
      your desired <code class="filename">${jetty.base}</code> when starting Jetty to
      have consistent behavior and use of the <code class="literal">user.dir</code>
      system property.</p></div></div></div><script type="text/javascript">
      SyntaxHighlighter.all()
    </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="startup-modules.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="startup.html"><i class="icon-chevron-up"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="start-jar.html">Next <i class="icon-chevron-right"></i></a></td></tr><tr><td width="40%" align="left" valign="top">Managing Startup Modules&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="icon-home"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Using start.jar</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
            See an error or something missing?
            <span class="callout"><a href="http://github.com/jetty-project/jetty-documentation">Contribute to this documentation at
                <span class="website"><i class="icon-github"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2014-07-27T01:00:23-07:00)</i></span></div></p><script xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1149868-7']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
    </script></body></html>

Back to the top