【问题标题】:Problems setting up a dynamic web project in eclipse using Java EE and Tomcat使用 Java EE 和 Tomcat 在 Eclipse 中设置动态 Web 项目的问题
【发布时间】:2011-01-09 08:36:04
【问题描述】:

我正在尝试创建一个简单的 helloworld 测试项目,以便在此基础上进行构建。我在 Eclipse 中使用带有 maven 的 Java EE,并且在我的 Web 浏览器中从 tomcat 收到 Requested reseource is not available 错误。

现在我只有一个测试jsp页面来打印Hello World,这就是我想要工作的全部。我使用命令mvn archetype:generate .. 创建了一个maven 项目来生成项目结构,然后将其导入Eclipse。然后,我向项目中添加了一个动态 Web 构面。

以下是我的 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 文件中是否缺少某些内容?我有一个从 Eclipse 中运行的 tomcat 服务器,所以这不是问题。我的 web.xml 中是否需要一个 servlet 映射条目?我真的很迷茫,不知道这一切是如何结合在一起的。任何帮助都会很棒。

这是我用来生成maven项目的命令:

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

谢谢

【问题讨论】:

    标签: eclipse maven-2 jakarta-ee


    【解决方案1】:

    我使用命令mvn archetype:generate ... 创建了一个maven 项目来生成项目结构,然后将其导入Eclipse。然后,我向项目中添加了一个动态 Web 构面。

    你不应该添加任何方面,如果你的项目有 war 类型的包装,事情应该可以正常工作。

    因此,如果您能提供用于使用原型插件创建项目的完整命令,那就太好了。您是否使用了maven-archetype-webapp 原型?你跑过类似的东西吗:

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

    如果没有,请确保您的 pom 有一个 &lt;packaging&gt;war&lt;/packaging&gt;,并且您使用默认结构用于一个 war 项目(参见 Usage 的示例)。

    那么,您使用什么插件来进行 Eclipse 集成?您是如何将项目导入 Eclipse 的?

    如果您使用的是 maven-eclipse-plugin(如果您运行了eclipse:eclipse),那么您需要 为WTP support 配置它。需要在命令行传递wtpversion(或者在POM中配置插件):

    mvn -Dwtpversion=2.0 eclipse:eclipse
    

    如果您使用的是 m2eclipse,那么只需将您的项目导入为 Maven 项目(右键单击 Package Explorer 然后Import... > Maven Projects )。

    在这两种情况下,您的项目都应该被识别为可以在服务器上运行的动态 Web 模块)。无需为此配置任何手册(无需添加方面)。

    更新:您在安装 m2eclipse 时是否安装了 Maven Integration for WTP(可选)

    【讨论】:

    • 我正在使用 m2eclipse,我确实将该项目作为 Maven 项目导入。默认情况下,它不被识别为动态 Web 项目,这就是为什么我必须将该方面添加到项目中的原因。我想知道这是为什么..
    • 我尝试再次导入maven项目。当我尝试在 Eclipse 中将资源添加到 Tomcat 服务器时,导入的项目没有显示出来。这就是为什么我最初意识到我必须将动态 web java 项目方面添加到项目中。你有什么想法我可能做错了吗?
    • @james 我刚刚添加了另一个建议(可能你没有在 m2eclipse 中安装 WTP 支持)。
    【解决方案2】:

    您可以尝试以下方法:

    a) 确保 URL 正确 - 它应该类似于 http://localhost:8080/DEPLOY_NAME/index.jsp 其中 DEPLOY_NAME 通常是您的 PROJECT_NAME *见下文。

    b) 确保项目已部署 - 查看服务器名称下的 Servers 选项卡(例如 Tomcat v6.0 Server at localhost em>) 并查找要在此处列出的项目/部署名称,如果不是,则需要运行该项目以使其位于服务器上。为此,请使用 Servers 选项卡中的红色方块停止服务器,然后在导航器中选择项目并单击绿色运行按钮,选择 在服务器上运行。这将重新启动服务器并部署项目。

    C) 确保部署名称符合您的预期 - 如果 DEPLOY_NAME 与项目名称不同,那么您需要更新您正在使用的 URL。要检查,请返回 Servers 选项卡,在服务器名称下(例如 Tomcat v6.0 Server at localhost)查看 Tomcat 部署的 WebApp 是什么。如果此名称与项目名称不同,您有两个选择:重命名或记住在测试时在 URL 中使用 Deploy 名称。要重命名它,请在 ../.settings/org.eclipse.wst.common.component 中更改它,然后查找名为 的 XML 标记和 XML 标记

    【讨论】:

      【解决方案3】:

      您能否发布来自 tomcat 的日志以查看其中是否有任何特定错误。此外,您可以查看以下页面,该页面向您展示如何将 eclipse 连接到 Tomcat 以及如何将项目从 eclipse 发布到 Tomcat。本教程介绍了一个简单的 Hello World 示例,类似于您尝试开发的示例。

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

      【讨论】:

        猜你喜欢
        • 2013-06-19
        • 1970-01-01
        • 2013-01-22
        • 1970-01-01
        • 2015-01-27
        • 2012-04-22
        • 1970-01-01
        • 2021-01-15
        • 2012-10-17
        相关资源
        最近更新 更多