Eclipse + Tomcat =错误的docBase?

时间:2009-11-10 14:25:55

标签: eclipse tomcat maven-2 context.xml

我正在使用Tomcat 6.0.18运行Eclipse Galileo。

目前,我有一个安装了m2Eclipse插件的工作应用程序。它部署到Tomcat,我能够测试我的应用程序。

我想切换到只使用Maven Eclipse插件。问题是Tomcat拒绝部署我的应用程序。

我已将我的Web项目转换为动态Web模块,并将所有构建路径设置为尽可能接近我之前的m2Eclipse工作区,但仍然没有成功。当我点击网址时,我只是得到一个空白页面。

我所做的缩小是在我的m2Eclipse工作区中,当Tomcat发布Web项目时,[TOMCAT_HOME] \ conf \ Catalina \ localhost中的context.xml文件将docBase设置为“Web Content”目录。在我的Maven Eclipse工作区中,Tomcat发布的context.xml将docBase设置为“Java Source”目录。

如果我的“Maven Eclipse”工作区与Tomcat集成,我需要做什么才能像我的m2Eclipse工作区一样成功运行?

3 个答案:

答案 0 :(得分:0)

如果您手动将项目转换为动态Web模块,则无法正确配置maven-eclipse-plugin。

根据 maven-eclipse-plugin documentation,您需要在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>

答案 1 :(得分:0)

使用Tomcat plugin for Eclipse

答案 2 :(得分:0)

我采取了另一种方式,采用现有的Eclipse Dynamic Web项目并将其转换为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>

那里有两个“变量”你可能想要单独留下 - 项目的名称(如“Servers”视图中所示)和在Tomcat上部署项目的URL的名称

我认为这是让WTP与Maven玩得很好所需的唯一变化,因为它告诉它在哪里可以找到需要部署到Tomcat的各种文件。