Можно ли отдельно добавить файлы .class (java) в существующий файл .war? - PullRequest
0 голосов
/ 13 мая 2011

У меня есть один файл Example.war, в котором нет кода src этого файла войны. Но я хотел изменить что-то на файл example.war. поэтому я создал новую страницу (файл .java) и скомпилировал страницу через ant..it был успешно собран. Теперь я хочу добавить новую страницу (файл .class) в Example.war.Я только что открыл файл example.war с помощью winZip и добавил эти .classfiles в файл войны. Но дело в том, что он не показывает каких-либо изменений после развертывания файла войны через tomcat.please, дайте мне знать, правильно ли я выполнил процесс. точный способ добавления .classfiles в файл войны.

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Первый ответ на ваш вопрос: «Да, вы можете добавить файлы классов в файл войны».Когда вы говорите «новая страница», подразумеваете ли вы новый сервлет (я полагаю, вы это делаете, поскольку вы сказали, что это был класс Java, а не файл JSP)?

Если вы хотите скомпилировать новый файл класса вВ существующей войне вы бы предприняли следующие шаги:

  1. Убедитесь, что версия Java, которую вы компилируете с помощью ANT, совпадает с версией Java, используемой вашим сервером приложений (той, на которой размещается WARфайл).
  2. Скомпилируйте файл .class в ANT, как вы делаете.
  3. Вы можете использовать любой zip-редактор (WinZip - хотя я предпочитаю WinRAR ) дляоткройте файл war и поместите файл .class в папку WEB-INF / classes.

Однако на данный момент вы не сообщили веб-приложению о своем новом файле классов (если онэто сервлет).Последний шаг, который вам нужно сделать, - это отредактировать файл web.xml в WEB-INF, чтобы сопоставить ваш сервлет с путем.См. в этой статье для примера .

Вы можете увидеть более подробную информацию обо всем этом процессе здесь .

Наконец, вы можете необходимо очистить кеш для сервера приложений и перезапустить его.если вы используете Tomcat, самый простой способ - удалить все из каталога «работа» и перезапустить сервер приложений.

0 голосов
/ 13 мая 2011

Вы не можете использовать WinZip.Ну, вы можете, но есть файл манифеста, который нужно обновлять каждый раз, когда вы меняете набор файлов .class в .war.

Вместо того, чтобы делать это вручную, простой способ сделать это -используйте команду jar, которая поставляется с JDK.Распакуйте войну (с помощью любого инструмента, но jar позволит вам это сделать), поместите файл .class в каталог lib, затем перепакуйте файл war с помощью инструмента jar.

На этой странице показано, как создать войну изнутри муравья.

в основном,

<target name="war" depends="compile"> 
  <war destfile="dist/AntExample.war" webxml="WebContent/WEB-INF/web.xml">
    <fileset dir="WebContent"/> 
    <lib dir="WebContent/WEB-INF/lib"/> 
    <classes dir="build/classes"/> 
  </war> 
</target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...