Сопоставьте несколько корней контекста с одним веб-URI в application.xml

У меня есть такой application.xml.

  <module>
    <web>
      <web-uri>services-inboxService.war</web-uri>
      <context-root>/services/inboxService</context-root>
    </web>
  </module>

Я хотел бы сопоставить разные корни контекста с одним веб-ури. Но есть ограничения, и каждый модуль должен содержать только один раздел web, а каждый web — только один context-root. раздел. Есть ли способ, кроме как скопировать этот военный файл с другим именем?


person Yegoshin Maxim    schedule 16.08.2012    source источник


Ответы (1)


Егошин Максим. Я считаю, что вы должны четко понимать концепцию URI в веб-приложении на основе Java EE:

<hostname:port/context-root/resource-path?parameters>

Теперь, если кто-то хочет использовать другую комбинацию имени хоста + порта для обслуживания одним и тем же установленным приложением, ему следует использовать концепцию виртуального хостинга, которая поддерживается в основном серверами приложений, такими как Tomcat, WebSphere.

Если кто-то хочет использовать другой путь к ресурсу для сопоставления с тем же ресурсом в веб-приложении, это делается путем настройки шаблона URL-адреса в web.xml.

Теперь, если кто-то хочет использовать другой корневой контекст для одной установки приложения, это невозможно. Даже если вы думаете с точки зрения загрузчика классов. Контекст приводит к созданию загрузчика классов контекста, который является дочерним элементом загрузчика классов сервера приложений. У нас не может быть более одного загрузчика классов контекста для одного веб-приложения, иначе невозможно разрешить ссылки на ресурсы/классы. Таким образом, единственное решение состоит в том, чтобы иметь несколько экземпляров приложения, работающих в разных корнях контекста.

person ag112    schedule 22.08.2012