【问题标题】:how to run a web service maven project on jetty 8 from eclipse?如何从 Eclipse 在 jetty 8 上运行 Web 服务 maven 项目?
【发布时间】:2012-07-28 01:32:27
【问题描述】:

我有一个我之前创建并部署在 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 中部署我的 maven 项目,以便我可以访问 http:localhost:8080/myproject 并查看我的项目是否正常工作?

编辑:

我以前在Tomcat上运行服务的方式是右键项目,点击Run As -> Run on server(在eclipse服务器中配置)

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

【问题讨论】:

    标签: java eclipse web-services jetty maven-3


    【解决方案1】:

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

    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-maven-plugin)。请记住,jetty 认为您的项目具有标准的 maven 项目结构,这意味着,它将在 /src/main/webapp 中查找您的 Web 应用程序内容,但看起来不在这里。在你的war插件配置中,你指定你的web内容在WebContent中,所以告诉jetty插件那个目录在那里,就像你告诉它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 东西在哪里。

    【讨论】:

    • 对不起,我想要第二个(使用 maven jetty 插件运行网络应用程序)
    • 因此,您可以直接从命令行执行此操作,也可以按照我的答案中的链接所述配置 Eclpise 来执行此操作。
    • 我正在尝试,但出现此错误:无法在项目上执行目标 org.mortbay.jetty:maven-jetty-plugin:6.1.26:run (default-cli) *** **service: Webapp 源目录 C:\Java\eclipse-workspace*****service\src\main\webapp 不存在。 //// 其中****隐藏了项目名称
    • 运行配置的基本目录应该是什么? .. 我用这个:${workspace_loc:/*****service}。 (项目目录)。这是应该有的吗?
    • 那里,应该是你的网页内容。为了向您提供更多信息,我再次编辑了我的答案。
    猜你喜欢
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2011-06-16
    • 2011-08-28
    • 2012-10-05
    • 2011-10-08
    • 1970-01-01
    相关资源
    最近更新 更多