Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Eclipse: проект в диретории Tomcat


Автор: Entry_N3 7.7.2007, 20:00
Слышал, что можно держать проект в директории webapps Tomcat`а, что позволяет одновременно программировать и запускать web-приложение (т.е. необходимо в использовании ant`а отпадает, разве что для конечной сборки).

Как настроить проект?  smile 

Сейчас есть папки:
src (java-файлы)
lib (библиотеки)
web (jsp, xml, *.properties)

Как их разместить в директории Tomcat`а? При этом, как он будет "относиться" к  scr?

 smile 
Заранее спасибо.

Автор: Tony 7.7.2007, 20:04
Ne horoshij sposob. 

Автор: Entry_N3 7.7.2007, 21:33
Tony, smile  


2all: все же, как так сделать? smile 

Автор: Tony 7.7.2007, 22:13
Ja ispozuju ANT dlja deploy. No war ne sozdaju ,a zamenja context fajl v Catalina/localhost. Mozhno postavit' sysdeo plugin dlja Eclipa itam est' sodat' Tomcat project. No mne etot sposob ne nravitsja.

Автор: Entry_N3 7.7.2007, 22:19
Цитата(Tony @ 7.7.2007,  22:13)
... Mozhno postavit' sysdeo plugin dlja Eclipa itam est' sodat' Tomcat project. No mne etot sposob ne nravitsja.

Т.е. проект Tomcat? Каков принцип?  smile 

Автор: Tony 7.7.2007, 22:26
http://www.ibm.com/developerworks/ru/library/os-ectom/ 

Автор: Entry_N3 8.7.2007, 14:01
Цитата(Tony @ 7.7.2007,  22:26)
http://www.ibm.com/developerworks/ru/library/os-ectom/

 smile   Основное понял!



При этом, как Tomcat будет "относиться" к scr? Т.е. изменил java-файл, нужно перезапускать Tomcat или он динамически изменяется, если да, то в какой момент?   smile 


Это как-то связано с hotspot`ом? 

Автор: Tony 8.7.2007, 14:36
4to bi dobavit' src, nodo zajti v opcii eclipsa i tav v dereve budet Tomcat. I odin iz podrazdelov budet src. Stavish na protiv svoego proekta galo4ku i debuger rabotaet s tvoimi sourcami.

Автор: Entry_N3 8.7.2007, 16:43
Tony, ок. структуру Tomcat-проекта я понял.


Меня интересует, нужно ли будет перезапускать Tomcat при добавлении нового исходника, чтобы он его подхватил? Или изменение в исходнике?..

Автор: Tony 8.7.2007, 18:30
Ne pomnju.

Автор: Entry_N3 8.7.2007, 18:45
Пометил, тему как решенную, но, если кто-то ответит на моей последний вопрос от 8.7.2007 16:43, буду очень признателен.  smile 

Автор: Tony 8.7.2007, 21:22
Цитата(Entry_N3 @ 8.7.2007,  18:45)
Пометил, тему как решенную, но, если кто-то ответит на моей последний вопрос от 8.7.2007 16:43, буду очень признателен.  smile

Nu tak poprobuj ! Sam i zapostish  smile 

Автор: danik 9.7.2007, 13:42
Проблема отпадает сама собой, если использовать Eclipse + MyEclipse. Проект с готовой структурой директорий деплоится в webapps, изменённые классы, jsp копируются на лету, рестарт серевера не нужен. Исключение составляют файлы конфигураций (web.xml, struts-config.xml ...), т. к. они кешируются сервером при старте.

Автор: Maksym 9.7.2007, 14:29
Entry_N3
А как же WTP, в нем все разрабатывается и запускается на лету..

Автор: Entry_N3 9.7.2007, 21:37
smile 

Автор: danik 10.7.2007, 10:42
Если есть необходимость, могу прислать на мыло ролик по настройке и юзанию MyEclipse на примере составления jsp c helloworld (3.5 mb)

Автор: Tony 10.7.2007, 21:31
Цитата(Maksym @ 9.7.2007,  14:29)
Entry_N3
А как же WTP, в нем все разрабатывается и запускается на лету..

Max, raskzhika tut popodrobnej. 

Автор: Ulysses4j 10.7.2007, 22:29
Простите, что встреваю, но мне кажется, расскаывать особо нечего. У меня стоит последний Eclipse (3.3) + WTP 2.0 (все вместе качал - Europa пакетик называется; там что-то еще по мелочи) - он с JBoss работает на ура. Разрабатываешь J2EE-проект, а он сам пакует в war (web.xml рисует) и деплоит, результат - тут же в Eclipse (кажись, он IE юзает).

Автор: Tony 11.7.2007, 00:50
Код

, а он сам пакует в war (web.xml рисует) и деплоит,

Ну тогда  это sux  smile 

Автор: Ulysses4j 11.7.2007, 12:45
Отчего же?

Автор: Maksym 11.7.2007, 12:56
Tony
Цитата(Ulysses4j @  10.7.2007,  22:29 Найти цитируемый пост)
а он сам пакует в war 
Он не пакует war, просто копирует структуру каталогов во временную папку и рестартует сервер, указывая эту папку как корень web-apps. Или, если приложение уже было задеплоено и сервер запущен, рестартует только это приложение, копируя только изменившиеся файлы.
Цитата(Ulysses4j @  10.7.2007,  22:29 Найти цитируемый пост)
web.xml рисует
Нет, не рисует. Использует то что ты ему напишешь. Возможно, ты имел в виду что при создании web-проекта, какой-то war по умолчанию создается, это так. Но потом меняй его как хочешь.
WTP делает хотдеплой web-приложения на сервер (после его build'а), управление сервером и приложением прямо из Eclipse из закладки Servers. Может запускать сервер в том числе и в debug-mode.
Цитата(Ulysses4j @  10.7.2007,  22:29 Найти цитируемый пост)
тут же в Eclipse (кажись, он IE юзает)
Это настраивается, можно использовать любой браузер, установленный в системе. По умолчанию Internal Browser Eclipse (на базе IE).

Добавлено через 1 минуту и 30 секунд
Цитата(Tony @  10.7.2007,  21:31 Найти цитируемый пост)
Max, raskzhika tut popodrobnej.  

ну вот собственно, то что написал, смысл в hotdeploy и возможности запускать сервер в debug-mode

Автор: Tony 11.7.2007, 20:01
Zna4it kopiruet.....

Автор: Ulysses4j 11.7.2007, 23:16
Цитата
Он не пакует war

Интересно, откуда у меня war-файлы тогда в deploy появляются...

Цитата
рестартует сервер

Я хочу оговориться что работаю с JBoss (хотя в части web-container это почти тот же Tomcat): ничего там не рестартуется, насколько я понимаю. Republish - это другое дело. JBoss не надо рестартовать, чтобы он новые проекты увидел.

Автор: Maksym 12.7.2007, 09:18
Цитата(Ulysses4j @  11.7.2007,  23:16 Найти цитируемый пост)
Я хочу оговориться что работаю с JBoss (хотя в части web-container это почти тот же Tomcat): ничего там не рестартуется, насколько я понимаю. Republish - это другое дело. JBoss не надо рестартовать, чтобы он новые проекты увидел.
В Tomcat тоже:
Цитата(Maksym @  11.7.2007,  12:56 Найти цитируемый пост)
Или, если приложение уже было задеплоено и сервер запущен, рестартует только это приложение, копируя только изменившиеся файлы.

Цитата(Ulysses4j @  11.7.2007,  23:16 Найти цитируемый пост)
Интересно, откуда у меня war-файлы тогда в deploy появляются...

Гм, не знаю. Наверное у Tomcat и JBoss разные механизмы редеплоя.

Автор: Entry_N3 12.7.2007, 17:19
А какие username/password для http://localhost:8080/manager?

Автор: Tony 12.7.2007, 17:25
Eto role.xml posmotri v papke conf.

Автор: Entry_N3 13.7.2007, 18:23
Что такое org.apache.catalina.loader.DevLoader и где он лежит?

Автор: Entry_N3 14.7.2007, 11:37
В eclipse есть путь компоновки - это означает, что все jar`ники будут в WEB-INF\lib TomcatProject`а? Просто у меня, после запуска Tomcat`а плагином sysdeo вылетают exception`ы, что нет определенных классиков, хотя они есть в jarниках... рекомендации?

Автор: Entry_N3 16.7.2007, 16:25
Auto Reloading
Whenever a class is compiled, the webapp needs to be reloaded. Depending on the app server you are using, you can configure it to auto-reload a webapp whenever compilation takes place. For example, on Tomcat you can do this by configuring the <Context> element of the server config and settings its reload attribute to true. The reference for this element is available here - 

Tomcat 4.0 - http://tomcat.apache.org/tomcat-4.0-doc/config/context.html 
Tomcat 5.0 - http://tomcat.apache.org/tomcat-5.0-doc/config/context.html 


 smile 

Автор: Tony 16.7.2007, 21:19
Цитата(Entry_N3 @ 16.7.2007,  16:25)
Auto Reloading
Whenever a class is compiled, the webapp needs to be reloaded. Depending on the app server you are using, you can configure it to auto-reload a webapp whenever compilation takes place. For example, on Tomcat you can do this by configuring the <Context> element of the server config and settings its reload attribute to true. The reference for this element is available here - 

Tomcat 4.0 - http://tomcat.apache.org/tomcat-4.0-doc/config/context.html 
Tomcat 5.0 - http://tomcat.apache.org/tomcat-5.0-doc/config/context.html 


 smile

Ja etim postjanno polzujus'. 4rez ANT legko reshaetsja. Prosto podmenjaesh context.xml v conf/Catalina/localhost. 

Автор: Entry_N3 16.7.2007, 21:51
Tony, зачем ant, если это сделано в обход... т.е. 2 альтернативы  smile 

Автор: Tony 16.7.2007, 22:21
Ti spomoshjua anta komandi copiruesh context.xml v Catalina/localhost. Tipa: ant deploy.
v build xml u tebja:
Код

    <target name="deploy" depends="build">            
        <copy tofile="${server}/${project.name}.xml" file="settings/context.xml" filtering="yes" overwrite="true" encoding="utf-8">
            <filterset>
                <filter token="displayName" value="displayName=&quot;${project.name}&quot;"/>
                <filter token="docbase" value="docBase=&quot;${webapp}&quot;"/>
                <filter token="path" value="path=&quot;/${project.name}&quot;"/>            
            </filterset>
        </copy>    
    </target>


a vot settings xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<Context
    @displayName@
    @docbase@
    @path@
/>

Posle deploy, tvoja app bisten'ko peregruzhetsja bez vsjakih arhivov.

Автор: Entry_N3 27.7.2007, 18:07
Из документации

Цитата

All implementations of Context support the following attributes:

reloadable Set to true if you want Catalina to monitor classes in /WEB-INF/classes/ and /WEB-INF/lib for changes, and automatically reload the web application if a change is detected. This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications. That's why the default setting for this attribute is false. You can use the Manager web application, however, to trigger reloads of deployed applications on demand
 


Как мне в Catalina\localhost прописать правильно?

Если так:
Код

<Context path="/mywebproject" reloadable="true">
</Context>

то 
Цитата

27.07.2007 19:28:48 org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already (th
e eventual following stack trace is caused by an error thrown for debugging purp
oses as well as to attempt to terminate the thread which caused the illegal acce
ss, and has no functional impact)

Автор: Tony 27.7.2007, 18:59
Tebe nado eshjo attribut dobavit' docbase="/root/workspace/mega_app/webapp"

Автор: Entry_N3 27.7.2007, 21:54
Tony, спасибо. Работаю, и получаю удовольствие  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)