java - 如何从 Eclipse 在 jetty 8 上运行 Web 服务 Maven 项目?

标签 java eclipse web-services jetty maven-3

我有一个之前创建并部署在 Tomcat7 中的 REST Web 服务。我想按照建议将其部署在 Jetty 上 in a previous question ,我创建了一个 Maven 项目并在那里复制了我的文件并配置了依赖项,我可以从 eclipse 成功运行 Maven 安装。

这是我在 POM.xml 中的 build 部分:

 <build>
    <plugins>
        <plugin>
             <groupId>org.mortbay.jetty</groupId>
             <artifactId>maven-jetty-plugin</artifactId>
        </plugin>

        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <dependentWarExcludes></dependentWarExcludes>
                <webappDirectory>
                    WebContent
                </webappDirectory>

            </configuration>
        </plugin>
    </plugins>
</build> 

我按照说明操作here使用maven jetty插件(我不确定是否需要)。这里的问题是如何从 Eclipse 在 jetty 中部署我的 Maven 项目,以便我可以访问 http:localhost:8080/myproject 并查看我的项目正在运行?

编辑:

我过去在 Tomcat 上运行服务的方式是右键单击项目,然后单击“运行方式”->“在服务器上运行”(在 Eclipse 服务器中配置)

我正在使用 eclipse Indigo、Maven 3 和 jetty 8。我还使用 jersey 作为 Web 服务。

最佳答案

在这里,您混合了两种不同的东西:

  1. 使用 Eclipse 服务器插件作为 Eclipse 的 Tomcat 插件来运行 Web 应用程序。
  2. 使用 Maven 插件作为 Jetty Maven 插件运行您的 Web 应用程序。还有适用于 Tomcat 的 Maven 插件。

话虽如此,看看这个 answer其中描述了如何配置 Eclipse 来运行 Maven 插件(它可能会根据 Eclipse 版本而变化,但想法是相似的)

已编辑:

如果您只想从 Maven 运行 jetty,只需使用以下命令行:

mvn jetty:run

但是,无论如何,我建议您在 pom 文件中指明 Maven jetty 插件版本(如果不这样做,Maven 会警告您)。

已编辑 2

首先,更新您的 jetty maven 插件版本:

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.0.M2</version>
</plugin>

第二。您正在使用两个插件,一个用于构建 war 文件 (maven-war-plugin),另一个用于在 jetty 上运行应用程序 (jetty-maven-plugin)。请记住,jetty 认为您的项目具有标准的 Maven 项目结构,这意味着它将在/src/main/webapp 中查找您的 Web 应用程序内容,但它看起来不在这里。在你的 war 插件配置中,你指定你的 web 内容位于 WebContent 中,所以告诉 jetty 插件该目录在那里,同时你也告诉它 to war 插件:

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.0.M2</version>
    <configuration>
        <webAppSourceDirectory>/WebContent</webAppSourceDirectory>             
        <webXml>/over/here/web.xml</webXml>
        <jettyEnvXml>/src/over/here/jetty-env.xml</jettyEnvXml>
        <classesDirectory>/somewhere/else</classesDirectory>
    <configuration>
</plugin>

参见documentation 。当然,最好使用标准的 Maven 项目结构,这样您就不需要告诉 jetty 东西在哪里。

关于java - 如何从 Eclipse 在 jetty 8 上运行 Web 服务 Maven 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720537/

相关文章:

java - Google map 信息窗口是否可以与标记重叠

java - 为什么java从属对象不能访问父域?

java - 如果目标尚未启动,Java 中 Thread.join() 的行为是什么?

xcode - 当我使用命令(ctrl)单击 eclipse 中的方法时,它会打开 xcode

java - Web 服务客户端之上的包装器

java - 使用 Thread.sleep 时 JApplet 内容会被清除

eclipse - 通过 Eclipse 在 Perforce 中对文件进行小的本地编辑的正确方法是什么?

java - Java 方法的退出点

java - 解码为soap webservice 中的通用类型 xml 中的任何类型

java - 创建 RESTful WebService 并通过 Glassfish 4 提供服务