2013-05-10 3 views
1

Я только что поднялся на Jetty 9 с 8 и имел странную проблему. Моя среда разработки - взорванная война, поэтому я просто бросаю символическую ссылку (ROOT) в каталог моего пристанища/webapps, указывающий на мою взорванную войну. Это отлично работает для Jetty 8, но, похоже, не работает для Jetty 9.jetty 9 символическая ссылка на взорванную войну

Во-первых, символическая ссылка теперь «root», в документации. Но когда я попал на мой сервер «/» он дает мне 404 и это:

Error 404 - Not Found. 

No context on this server matched or handled this request. 
Contexts known to this server are: 
/war ---> [email protected]{/war,file:/home/george/git/s/web_app/war/,AVAILABLE}{/home/george/git/s/web_app/war} 

означает, что я могу найти мое приложение служил под «/ войны» вместо того, чтобы просто «/». Необычное.

ответ

3

Это связано с множеством изменений, главным образом указывая на использование Java 7 и требований к более поздним спецификациям сервлетов.

Прост достаточно, чтобы исправить ситуацию.

  1. Не используйте символические ссылки ОС.
  2. Создайте файл с именем ${jetty.home}/webapps/mywebapp.xml со следующим содержанием
<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" 
     "http://www.eclipse.org/jetty/configure_9_0.dtd"> 

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/</Set> 
    <Set name="war">/home/george/git/s/web_app/war/</Set> 
</Configure> 

Все сделано, теперь вы в основном используете Jetty Deployable XML Descriptor, который устанавливает величину contextPath к / (ака Servlet Spec Root) и указывая на войну, что вам хотите развернуть.

+0

Работал как очарование, спасибо! – ticktock

Смежные вопросы