Проблемы с настройкой динамического веб-проекта в Eclipse с использованием Java EE и Tomcat - PullRequest
1 голос
/ 26 января 2010

Я пытаюсь запустить простой тестовый проект helloworld, чтобы я мог на нем опираться. Я использую Java EE с maven в Eclipse и получаю ошибку Requested reseource is not available от tomcat в моем веб-браузере.

Сейчас все, что у меня есть, это тестовая страница jsp для печати Hello World, и это все, что я пытаюсь заставить работать. Я создал проект maven с помощью команды mvn archetype:generate .. для создания структуры проекта, которую затем импортировал в Eclipse. Затем я добавил динамический веб-фасет в проект.

Вот как выглядит мой файл web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

Как заставить tomcat забрать мой файл index.jsp, чтобы я мог его отобразить? Я что-то упустил в своем файле web.xml? У меня есть сервер Tomcat, работающий из затмения, так что это не проблема. Нужна ли мне запись сопоставления сервлета в моем файле web.xml? Я просто действительно потерян, как все это сочетается. Любая помощь будет великолепна.

Это команда, которую я использовал для создания проекта maven:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp \
                   -DgroupId=com.mycompany.app \
                   -DartifactId=my-webapp \
                   -Dversion=1.0-SNAPSHOT 

Спасибо

Ответы [ 3 ]

6 голосов
/ 26 января 2010

Я создал проект maven с помощью команды mvn archetype:generate ... для создания структуры проекта, которую я затем импортировал в Eclipse. Затем я добавил динамический веб-фасет в проект.

Вам не нужно добавлять какой-либо аспект, все должно работать, если ваш проект имеет упаковку типа war .

Поэтому было бы неплохо предоставить полную команду, которую вы использовали для создания своего проекта, с помощью плагина archetype. Вы использовали maven-archetype-webapp архетип? Вы запускали что-то подобное:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp \
  -DgroupId=my.group.id -DartifactId=my-artifact -Dversion=1.0-SNAPSHOT

Если нет, то убедитесь, что у вашего пома есть <packaging>war</packaging> и что вы используете структуру по умолчанию для военного проекта (см. Использование для примера).

Тогда, какой плагин вы используете для интеграции с Eclipse? Как вы импортировали проект в Eclipse?

Если вы используете плагин maven-eclipse-(если вы запустили eclipse:eclipse), тогда вам нужно настройте его для поддержки WTP . Вам необходимо передать wtpversion в командной строке (или настроить плагин в POM):

mvn -Dwtpversion=2.0 eclipse:eclipse

Если вы используете m2eclipse, просто импортируйте ваш проект как Maven Project ( щелкните правой кнопкой мыши Package Explorer , затем Import ...> Maven Projects ).

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

Обновление: Вы устанавливали Maven Integration для WTP (Необязательно) при установке m2eclipse?

0 голосов
/ 26 января 2010

Вот кое-что, что вы можете попробовать:

a) Убедитесь, что URL правильный - это должно быть что-то вроде http://localhost:8080/DEPLOY_NAME/index.jsp, где DEPLOY_NAME обычно является вашим PROJECT_NAME *, см. Ниже.

b) Убедитесь, что проект был развернут - посмотрите вкладку Серверы под именем сервера (например, Сервер Tomcat v6.0 на локальном хосте ) и найдите там имя вашего проекта / deploy_name, если это не так, вам нужно запустить проект, чтобы он находился на сервере. Для этого остановите сервер, используя красный квадрат на вкладке Серверы , затем выберите проект в навигаторе и нажмите зеленую кнопку «Выполнить», выбрав Запуск на сервере . Это перезапустит сервер и развернет проект.

C) Убедитесь, что имя развертывания соответствует ожидаемому. - Если DEPLOY_NAME отличается от имени проекта, необходимо обновить используемый вами URL-адрес. Чтобы проверить, вернитесь на вкладку Серверы и под именем сервера (например, Сервер Tomcat v6.0 на локальном хосте ) посмотрите, что Tomcat развернул как WebApp. Если это имя отличается от имени проекта, у вас есть два варианта: переименовать его или не забудьте использовать имя развертывания в URL-адресе при тестировании. Чтобы переименовать его, измените его в ../.settings/org.eclipse.wst.common.component, затем найдите тег XML с именем и тег XML .

0 голосов
/ 26 января 2010

Можете ли вы опубликовать логи от tomcat, чтобы увидеть, есть ли там какие-то конкретные ошибки. Кроме того, вы можете взглянуть на следующую страницу, которая показывает, как подключить затмение к Tomcat и как публиковать проекты из затмения в Tomcat. Учебное пособие посвящено простому примеру Hello World, похожему на тот, который вы пытаетесь разработать.

http://www.ibm.com/developerworks/library/os-eclipse-tomcat/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...