как внести изменения в проект и запустить его через IDE, не разворачивая его на сервере - PullRequest
5 голосов
/ 19 апреля 2011

Я хочу знать, как я могу вносить изменения в мой код и запускать его на сервере непосредственно из среды IDE eclipse вместо преобразования моего проекта каждый раз в файл war и развертывания его на сервере.

Я не знаюне хочу, чтобы мои изменения отражались только путем преобразования его в файл war и развертывания его каждый раз на сервере ... могу ли я увидеть их "на лету" непосредственно через мою среду Eclipse, как только внесу некоторые изменения ...

Пожалуйста, помогите мне, я не знаю точно, что искать в Google. Так что ищите помощь "SO".

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

PS: Извините, мой плохой !!!Я должен был дать больше информации ... Я работаю над проектом на основе Spring Hibernate ..., который имеет только файлы Java

Ответы [ 5 ]

3 голосов
/ 19 апреля 2011

Вы можете использовать плагин Eclipse-WTP для обработки ваших веб-проектов (http://www.eclipse.org/webtools).). С помощью этого плагина вы можете создавать «динамические веб-проекты», которые могут быть развернуты на указанном (Tomcat) сервере.

Если вы используете maven и ваш проект структурирован как maven-webapp (webapp-archetype), вы также можете использовать плагин m2eclipse, чтобы импортировать ваш maven-проект и запустить его на сервере.

2 голосов
/ 19 апреля 2011

В ответ на ответ sjr, архетип быстрого запуска калитки содержит такой основной класс.Вот оно:

Start.java (HEAD)

В этом нет ничего специфичного для калитки,может использоваться для запуска любого проекта Java webapp

Скопируйте его в src / test / java и выполните его как основной класс

, вам понадобятся следующие зависимости в вашем pom:

<dependency>
    <groupId>org.eclipse.jetty.aggregate</groupId>
    <artifactId>jetty-all-server</artifactId>
    <version>7.3.0.v20110203</version>
    <scope>provided</scope>
</dependency>
2 голосов
/ 19 апреля 2011

Есть так много разных способов сделать это, но вот один подход, который может работать для вас (трудно сказать, потому что вы не были конкретны в своей контейнерной среде):

В методе main нового приложения Java:

  • создать экземпляр контейнера сервлета (например, Jetty или Tomcat)
  • зарегистрировать сервлеты вашего приложения с помощью вызовов API контейнера сервлетов
  • создать соответствующие сопоставления URL для ваших статических ресурсов
  • запустить HTTP-сервер

Затем запустите это приложение в режиме отладки. Теперь у вас есть мини-среда, запущенная в Eclipse.

0 голосов
/ 19 апреля 2011

Вы можете использовать технологии HotSwap через плагин WTP eclipse, чтобы увидеть эффект измененного кода без необходимости повторного развертывания всего приложения на сервере приложений.Эта ссылка содержит руководство по настройке горячего развертывания tomcat с использованием подключаемого модуля WTP eclipse.

Но эта технология HotSwap имеет много ограничений, например, она позволяет только изменять тела методов, но не позволяет добавлять / удалять классы, поля, конструкторы, методы, аннотации и т. Д., А также модифицировать файлы XML.и файлы свойств (например, web.xml, Face-config.xml) не могут быть отражены мгновенно.

JRebel может преодолеть эти ограничения, но это не бесплатно. Обсудить ограничение других альтернативбесплатно / с открытым исходным кодом здесь

0 голосов
/ 19 апреля 2011

Все не может быть отражено на лету

  • Вы можете изменять изображения, файлы JavaScript, css такие файлы на лету.
  • Некоторые файлы, которые есть, которыеманипулируют временем инициализации контекста, например (web.xml, весенние conf-файлы и некоторые другие conf-файлы). Таким образом, вы не можете изменить их на лету, но вы можете изменить их и перезапустить сервер, чтобы увидеть эффект.

  • Некоторый код сервлета и Java необходимо скомпилировать, и вы можете изменить их на лету, если они не были загружены загрузчиком классов (Вы не можете быть на 100% уверены здесь)

...