Я использую Jetty 8 для запуска некоторых сервлетов. У меня есть два (или более) приложения, которые используют исходный код, и я хочу запускать их на одном и том же порту (т. Е. 8080). Я поместил два различных файла WAR в Jetty, one.war
и two.war
, так что я к ним доступ на, например,Один JVM за приложение WAR in Jetty?
http://localhost:8080/one
http://localhost:8080/two
Оба ВОЙН содержат идентичный файл общий JAR (общие утилиты). Имеет ли каждое приложение WAR свою собственную JVM? На самом деле, я просто хочу быть уверенным, что общие классы JAR полностью разделены, поскольку некоторые из классов являются статическими, и мне нужно, чтобы два приложения явно не предоставляли доступ к одному и тому же статическому классу.
Это кажется очевидным, и я, похоже, подтвердил, что обычные классы загружаются отдельно для каждой WAR с помощью простого тестового сценария (две идентичные WAR, размещенные в одном экземпляре Jetty, но с разными путями. выше). Но мне не хватает письменной документации или подтверждения, что это так.
Yup, это стандартное поведение Servlet Container, все совместимые контейнеры сервлетов Java будут изолировать webapps в своем собственном загрузчике классов. У вас могут быть разные войны с разными уровнями поддержки сервлета-api. –
Текущая ссылка для документации: http://www.eclipse.org/jetty/documentation/current/jetty-classloading.html –