2016-01-27 3 views
0

Я установил пристань, используя PKGBUILD от AUR. Конфигурация была оставлена ​​по умолчанию.
Jetty не может найти файл веб-приложения

Примечание: поскольку makepkg не удалось загрузить пристани v.9.3.2 с OFFICAL сайта, я скачал из репозитория Maven

Проблема заключается в том, что, когда я пытаюсь развернуть мой веб-приложения с использованием Jetty Deployable Дескриптор файла XML, молы не удается найти войны со следующим исключением:

2016-01-27 17:05:30.265:WARN:oejw.WebInfConfiguration:main: Web application not found /home/pmitrofanov/sample.war 
2016-01-27 17:05:30.265:WARN:oejw.WebAppContext:main: Failed startup of context [email protected]{/sample,null,null}{/home/pmitrofanov/sample.war} 
java.io.FileNotFoundException: /home/pmitrofanov/sample.war 
    at org.eclipse.jetty.webapp.WebInfConfiguration.unpack(WebInfConfiguration.java:495) 
    at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:72) 
    at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:474) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:510) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:188) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:499) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:147) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180) 
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:459) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64) 
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:610) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:529) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:392) 
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:150) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:561) 
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:236) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) 
    at org.eclipse.jetty.server.Server.start(Server.java:405) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:372) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1510) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1435) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:214) 
    at org.eclipse.jetty.start.Main.start(Main.java:457) 
    at org.eclipse.jetty.start.Main.main(Main.java:75) 

Вот содержимое XML:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/sample</Set> 
    <Set name="war">/home/pmitrofanov/sample.war</Set> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!-- Max Form Size             --> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <Set name="maxFormContentSize">5000000</Set> 
</Configure> 

Следует отметить, что:

  1. Когда я вручную поместить войну в каталог WebApps вместо использования XML, все идет хорошо.
  2. Все пользователи имеют доступ к RWX войны: -rwxrwxrwx 1 pmitrofanov pmitrofanov 25104375 Jan 27 16:37 /home/pmitrofanov/sample.war
+0

Что такое PKGBUILD и что такое AUR? Это что-то с archlinux? Развертываемый XML для Jetty 9.0 не Jetty 9.3 (ваш DTD отключен). Значение maxFormContentSize, равное 5 000 000, является глупо большим для формы и открывает вам множество векторов атаки DoS. Что вы пытаетесь достичь? это почти похоже на то, что вы следуете инструкциям для старой версии Jetty (pre Jetty 9). –

+0

Вопрос отмечен меткой archlinux, поэтому да - это что-то с archlinux :) Развертывание XML используется несколькими людьми с разными версиями причала (8 и 9). Я не могу сказать вам причину такого большого значения 'maxFormContentSize', поскольку создатель этого xml не я.Я не думаю, что формат развертывания является причиной, потому что, по крайней мере, причал мог получить путь и терпит неудачу только при попытке доступа к войне с этим путем. стр. никто, кто работает с этим развертываемым, столкнулся с этой проблемой –

ответ

1

Проблема в том, что никто, кроме владельца не прочитает + выполнить доступ к /home/pmitrofanov каталогу.

1

Несколько вещей, чтобы указать на ...

  • Формат и синтаксис XML Jetty изменилась Jetty 9.3 имеет a new DTD (высоки рекомендуется использовать его)
  • Jetty 8 is EOL (End of Life)
  • на Servlet 3.x, если вы делаете загрузку файлов с помощью POST, его лучше использовать @MultipartConfig или <multipart-config> для определения местоположений, размеров, пределов и т. д. (не настройки WebAppContext)
  • С Jetty 9, если вы работаете с большими заголовками запросов (на которые указывает ваша максимальная настройка содержимого в размере 5 000 000 байт), вам, вероятно, потребуется знайте о Connector HttpConfiguration, который более строго ограничивает размеры заголовка запроса, а затем ваши настройки WebAppContext.
  • В вашем примере ${jetty.base}/webapps/sample.xml при запуске он сразу же ищет файл войны, если он не может его найти, он не будет разворачиваться. (вы используете ${jetty.base} с Jetty 9, правильно? вы не должны изменять/добавлять/удалять файлы в дистрибутиве причала, когда-либо)
  • Простое замену войны НЕ передислоцирует военный файл. Вы должны будете коснуться ${jetty.base}/webappps/sample.xml, чтобы вызвать повторное развертывание.
  • Там не предусмотрено для ресурсов мониторинга ссылки в XML, только содержание в ${jetty.base}/webapps/
Смежные вопросы