Развертывание статического содержимого в пристани - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь развернуть приложение статически в молнии, но использую XML-файл конфигурации, потому что я использую виртуальные хосты.

Я создаю этот файл XML для развертывания:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
  "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="contextPath">/mail</Set>
    <!--<Call name="setInitParameter">
        <Arg>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</Arg>
        <Arg>false</Arg>
    </Call> -->
    <Set name="handler">
    <New class="org.eclipse.jetty.server.handler.ResourceHandler">
      <Set name="resourceBase">/ccmail</Set>
      <Set name="directoriesListed">true</Set>
    </New>
  </Set>

    <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>apps.cairunet.ad.br</Item>     
    </Array>
  </Set> 

</Configure>

имя для моей папки приложения ccmail.Находится в webapps/ccmail Я уже пытаюсь перейти к пути для:

<Set name="resourceBase">/ccmail</Set>

<Set name="resourceBase">ccmail</Set>

<Set name="resourceBase">./ccmail</Set>

<Set name="resourceBase">webapps/ccmail</Set>

<Set name="resourceBase">/webapps/ccmail</Set>

Любой, этот путь не работает для меня.

Пристань запускает эту ошибку:

2019-02-25 09:36: 46.422: ПРЕДУПРЕЖДЕНИЕ: oejs.ServletContextHandler: main: ServletContextHandler.setHandler не следует вызывать прямо.Используйте insertHandler или setSessionHandler и т. Д. 2019-02-25 09: 36: 46.484: ПРЕДУПРЕЖДЕНИЕ: oejw.WebInfConfiguration: main: Невозможно сгенерировать resourceBase как часть имени каталога tmp веб-приложения: java.lang.IllegalStateException: Нет resourceBase или войны дляcontext 2019-02-25 09: 36: 46.500: WARN: oejw.WebAppContext: main: Не удалось запустить контекст oejwWebAppContext @ 7d0587f1 {/ mail, nul

l, UNAVAILABLE, apps.cairunet.ad.br}java.lang.IllegalStateException: ресурсная база или война не заданы для контекста в org.eclipse.jetty.webapp.WebInfConfiguration.unpack (WebInfConfiguration.java:577) в org.eclipse.jetty.webapp.WebInfConfiguration.preConf2j.) в org.eclipse.jetty.webapp.WebAppContext.preConfigure (WebAppContext.java:506) в org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:544) в org.ecliptil.jetAbstractLifeCycle.start (AbstractLifeCycle.java:68) в org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding (StandardStarter.java:46) в org.eclipse.jetty.deploy.AppLifeCycle.runBindings (AppLifeCycle.java:192) в org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal (DeploymentManager.java:505) в org.eclipse.jetty.deagerppaA151) по адресу org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded (ScanningAppProvider.java:180) по адресу org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded (WebAppProvidelj.jj:45)..deploy.providers.ScanningAppProvider $ 1.fileAdded (ScanningAppProvider.java:64) в org.eclipse.jetty.util.Scanner.reportAddition (Scanner.java:610) в org.eclipse.jetty.util.Scanner.reportDifferences (Java: 529) в org.eclipse.jetty.util.Scanner.scan (Scanner.java:392) в org.eclipse.jetty.util.Scanner.doStart (Scanner.java:313) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) в org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart (ScanningAppProvider.java:150) в org.eclipse.jetty.utilbpon.Ale.start (AbstractLifeCycle.java:68) в org.eclipse.jetty.deploy.DeploymentManager.startAppProvider (DeploymentManager.java:579) в org.eclipse.jetty.deploy.DeploymentManager.doStart (DeploymentManager.java:2).eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) в org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:138) в org.eclipser.erty.Set.start (Server.java:415) в org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:117) в org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:11) в org.eclipse.jetty.server.Server.doStart (Server.java:382) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) в org.eclipse.jetty.xml.XmlConfiguration $ 1.run (XmlConfiguration.java:1572) в org.eclipse.jetty.xml.XmlConfiguration $ 1.run (XmlConfiguration.java:1512) в java.security.AccessController.doPrivileged (собственный метод)в org.eclipse.jetty.xml.XmlConfiguration.main (XmlConfiguration.java:1511) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник.invoke (Неизвестный источник) в java.lang.reflect.Method.invoke (Неизвестный источник) в org.eclipse.jetty.start.Main.invokeMain (Main.java:220) в org.eclipse.jetty.start.Main.start(Main.java:490) at org.eclipse.jetty.start.Main.main (Main.java:77) 2019-02-25 09: 36: 46.578: INFO: oejs.AbstractConnector: main: запущен ServerConnector @ 27808f31 {HTTP / 1.1, [http / 1.1]} {0.0.0.0: 8080} 2019-02-25 09: 36: 46.594: INFO: oejs.Server: main: Запущено @ 2970ms

1 Ответ

0 голосов
/ 25 февраля 2019

Примечание: будьте осторожны с вашим DOCTYPE, то, что вы объявили от Jetty 7.x до Jetty 8.x, и не подходит для Jetty 9.x

Не делайтеСмешайте ResourceHandler и WebAppContext / ServletContextHandler.

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
   "http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/mail</Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>apps.cairunet.ad.br</Item>     
    </Array>
  </Set> 
</Configure>

Основная поддержка заключается в том, чтобы не ссылаться на /ccmail в вашем <Configure>.

Тот факт, что он существует как ${jetty.base}/webapps/ccmail/,достаточно, чтобы развернуть /ccmail в качестве статической базы ресурсов для вас.

НО, если вы хотите объединить статические ресурсы с виртуальными хостами, то вы можете использовать WebAppContext с альтернативной базой или новый ResourceHandler..

Пример альтернативных баз: Обслуживание статических файлов по альтернативному пути во встроенном Jetty

Пример использования ResourceHandler: https://www.eclipse.org/jetty/documentation/current/static-content-deployment.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
   "http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
  <Set name="contextPath">/ccmail</Set>
  <Set name="handler">
    <New class="org.eclipse.jetty.server.handler.ResourceHandler">
      <Set name="resourceBase">/fully/qualified/path/to/my/jetty.base/webapps/ccmail</Set>
      <Set name="directoriesListed">true</Set>
    </New>
  </Set>
  <Set name="virtualHosts">
    <Array type="java.lang.String">
      <Item>apps.cairunet.ad.br</Item>     
    </Array>
  </Set> 
</Configure>
...