Начиная с поста @ Trein, настройка WAR_LOCATION важна.Я видел, что Jetty не может развернуть веб-приложение, когда оно отсутствует.
Предполагается, что вы используете Jetty для тестирования своего приложения, если вы используете Maven POM, ниже, как я тестирую свое веб-приложение
pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-servlet-tester</artifactId>
<version>6.1.22</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.19</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>tomcat</id>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.22</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
<contextPath>/</contextPath>
<webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
<systemProperties>
<systemProperty>
<name>RESOURCE_PATH</name>
<value>${project.build.outputDirectory}</value>
</systemProperty>
</systemProperties>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
<executions>
<execution>
<phase>test-compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>package</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Чтобы запустить веб-приложение, вы можете запустить mvn jetty:start
или запустить пакет mvn.Это запустит сервер Jetty на порту 9090 и запустит тесты (здесь вы можете выполнить свои тесты на основе http) и завершить работу сервера / веб-приложения.Если вы хотите работать как автономное веб-приложение, используйте mvn jetty:start
и используйте ваше веб-приложение точно так же, как любой контейнер веб-приложения.
Все это предполагает, что вы используете Maven.Код выше, предоставленный @Trein, делает то же самое программно, и тот, который я предоставил, является эквивалентом конфигурации maven выше.
Примечание : Вам не следует беспокоиться о webdefault.xml, какзначение по умолчанию уже упаковано в файл jar Jetty.Вы должны использовать свой собственный webdefault.xml только тогда, когда вам нужно расширить / изменить значения по умолчанию.Что-то не так с вашим флягой Jetty (если он сообщает об этом или что-то связано с вашими настройками CLASSPATH)