java jboss - Преимущества / Недостатки взорванных войн




deploy run (6)

Ответ на вопрос, который я прочитал сегодня, предложил развернуть приложение как взорванную WAR. Это заставило меня задуматься.

Каждое развертывание, которое я когда-либо делал с JBoss / Tomcat, было с файлом WAR / EAR. По крайней мере, насколько я помню.

Я делал ошибку все эти годы?

Существуют ли преимущества для развертывания приложения в его расширенной форме, а не в упаковке?


Answers

Не взрывать WAR / EAR при развертывании не имеет никакого значения для сервера приложений. Это потому, что под ними все взорваны.

Например, если вы поместите WAR-файл в webapp tomcat, вы увидите, что в вашем рабочем каталоге ваш файл WAR будет там взорван.

В принципе, WAR / EAR просто архивируют ваши файлы, чтобы было легче перемещаться и развертывать


Con: если вы находитесь в окнах, вы часто обнаружите, что ОС случайно блокирует некоторый файл в взорванном .war, и вам будет сложно удалить всю войну и переустановить.


AFAIK, горячее развертывание возможно только с взорванными войнами. А также во время разработки проще просмотреть дерево проекта на сервере. Конечно, могут быть другие преимущества и недостатки, которые я буду рад услышать.


Я думаю, что это был мой ответ, говорящий о взрыве ВОЙНЫ в другом вопросе. В развязанных WAR легче перемещаться, и вы можете быстрее развертывать «части» вашего приложения (в зависимости от того, как это работает с нашим сервером Web / App), например, заменить один ресурс, например, страницу JSP. Однако это может иметь некоторые недостатки:

1.) Какую версию вы действительно используете? «Хммм, я не совсем уверен сейчас»

2.) Безопасность. У вас есть право на разрешение на взорванный формат?

3.) Беспокойство - файлы изобилуют распространением по всему вашему приятному веб-серверу (некоторые люди действительно ненавидят это).

Я, как правило, взорвался для прототипа работы Dev, а затем перешел к правильной упаковке, ближе к PRD, которую я получаю.


На этапе разработки более удобна для развертывания взорвана. Таким образом, вы можете быстро обновить некоторые развернутые ресурсы (как это могут быть страницы JSP).

Для среды тестирования и производства я предпочитаю вместо этого пакетное развертывание: ligther и проще для развертывания.


Каждое веб-приложение имеет свой собственный Classloader (изолирующий их). Когда вы вызываете метод Class.forName (), появляется статический блок, который пытается загрузить общую библиотеку (файл dll) - поэтому оба ваших веб-приложения пытаются загрузить общую библиотеку, поэтому появляется сообщение об ошибке, когда второй пытается загрузить.

Jar-файл JDBC, который у вас есть для sqlserver, должен быть перемещен из комплекта ваших войн в папку tomcat 7.0/lib и скопировать sqljdbc_auth.dll в папку tomcat / bin - таким образом, он будет находиться в родительском загрузчике классов tomcat и в классе будет загружен только один раз.

|----------------------------------|
| sqljdbc*.jar     --> tomcat*/lib |
|----------------------------------|
| sqljdbc_auth.dll --> tomcat*/bin |
|----------------------------------|




java tomcat jboss war-files war-filedeployment