Eclipse + Tomcat = неправильная база документов? - PullRequest
0 голосов
/ 10 ноября 2009

Я использую Eclipse Galileo с Tomcat 6.0.18.

В настоящее время у меня есть работающее приложение с установленным плагином m2Eclipse. Он развертывается в Tomcat, и я могу протестировать свое приложение.

Я хочу переключиться на использование плагина Maven Eclipse. Проблема в том, что Tomcat отказывается от развертывания моего приложения.

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

Что я сделал, так это то, что в моем рабочем пространстве m2Eclipse, когда Tomcat публикует веб-проект, файл context.xml в [TOMCAT_HOME] \ conf \ Catalina \ localhost имеет docBase, установленный в каталог «Web Content». В то время как в моем рабочем пространстве Maven Eclipse в файле context.xml, который публикует Tomcat, для docBase задан каталог «Источник Java».

Что мне нужно сделать, чтобы мое рабочее пространство "Maven Eclipse" интегрировалось с Tomcat для успешной работы, как мое рабочее пространство m2Eclipse?

Ответы [ 3 ]

0 голосов
/ 10 ноября 2009

Узнайте, как использовать плагин Tomcat для Eclipse .

0 голосов
/ 18 декабря 2009

Я пошел другим путем, взяв существующий веб-проект Eclipse Dynamic и преобразовав его в проект Maven. Чтобы заставить их работать, скорее всего, потребуется вручную редактировать файлы проекта.

Сначала выберите «Настроить вид» из маленькой стрелки в представлении «Project Explorer» и снимите флажок «. * Resources» в списке фильтров. Это позволит вам просмотреть содержимое каталога .settings.

Открыть org.eclipse.wst.common.component. Это XML-файл, который сообщает проекту WTP, где находятся файлы webapp.

Чтобы он работал с Maven, он должен выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="(project name)">
    <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
    <property name="context-root" value="(project URL)"/>
    <property name="java-output-path"/>
  </wb-module>
</project-modules>

Там есть две «переменные», которые вы, вероятно, захотите оставить в покое - имя проекта (как оно отображается в представлении «Серверы») и имя URL, на котором проект развернут на Tomcat. .

Я думаю, что это единственное изменение, которое действительно необходимо для того, чтобы WTP хорошо работал с Maven, поскольку он указывает, где искать различные файлы, необходимые для развертывания в Tomcat.

0 голосов
/ 10 ноября 2009

Похоже, у вас нет правильной конфигурации maven-eclipse-plugin, если вы вручную преобразовали проект в динамический веб-модуль.

Согласно документации maven-eclipse-plugin вам необходимо указать дополнительную конфигурацию в pom (или передав параметры -D) для проекта WTP. Ключ <wtpversion> тег.

     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                    <projectNameTemplate>[artifactId]-[version]</projectNameTemplate>
                    <wtpmanifest>true</wtpmanifest>
                    <wtpapplicationxml>true</wtpapplicationxml>
                    <wtpversion>2.0</wtpversion>
                    <manifest>${basedir}/src/main/resources/META-INF/MANIFEST.MF</manifest>
            </configuration>
    </plugin>
...