首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让maven-jetty-plugin部署-war,同时提供外部静态内容

让maven-jetty-plugin部署-war,同时提供外部静态内容
EN

Stack Overflow用户
提问于 2012-03-29 21:50:58
回答 1查看 2.2K关注 0票数 4

我正在使用maven-jetty-plugin为一个web应用程序编写集成测试。我在预集成测试阶段使用了deploy-war目标。web应用程序依赖于另一个web应用程序,我想通过提供来自同一jetty实例的静态内容来模拟。

下面是我的jetty配置的相关部分:

代码语言:javascript
复制
<execution>
    <id>start-jetty</id>
    <phase>pre-integration-test</phase>
    <goals>
        <goal>deploy-war</goal>
    </goals>
    <configuration>
        <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                <port>${jetty.port}</port>
            </connector>
        </connectors>
        <daemon>true</daemon>
        <webApp>${build.directory}/motown2-war.war</webApp>
        <webAppConfig>
            <extraClasspath>${basedir}/target/classes/;${basedir}/target/test-classes</extraClasspath>
            <contextPath>/${context.path}</contextPath>
        </webAppConfig>
        <contextHandlers>           
            <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
                <contextPath>/other</contextPath>
                <resourceBase>/opt/data</resourceBase>
            </contextHandler>
        </contextHandlers>
    </configuration>
</execution>

我将此配置基于http://blog.markfeeney.com/2009/12/scala-lift-jetty-6-static-content-and.html,但是上下文处理程序的配置似乎被忽略了。我在日志文件中找不到这一点的踪迹,jetty返回404而不是静态内容,web应用程序本身正在运行。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-30 16:44:38

我想通了:

resourceHandlers配置只适用于jetty:run目标,所以我现在在我的测试项目中使用一个空的webapp,它覆盖了要测试的webapp:

代码语言:javascript
复制
<execution>
    <id>start-jetty</id>
    <phase>pre-integration-test</phase>
    <goals>
        <goal>run</goal>
    </goals>
    <configuration>
        <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                <port>${jetty.port}</port>
            </connector>
        </connectors>
        <daemon>true</daemon>
        <webApp>${build.directory}/motown2-war.war</webApp>
        <webAppConfig>
            <extraClasspath>${basedir}/target/classes/;${basedir}/target/test-classes</extraClasspath>
            <contextPath>/${context.path}</contextPath>
            <baseResource implementation="org.mortbay.resource.ResourceCollection">
                <resourcesAsCSV>../motown2-war/src/main/webapp,src/main/webapp</resourcesAsCSV>
            </baseResource>
        </webAppConfig>
        <contextHandlers>           
            <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
                <contextPath>/other</contextPath>
                <resourceBase>/opt/data</resourceBase>
            </contextHandler>
        </contextHandlers>
    </configuration>
</execution>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9926741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档