Получите maven-jetty-plugin для развертывания war и одновременного обслуживания внешнего статического контента - PullRequest
4 голосов
/ 29 марта 2012

Я пишу интеграционные тесты для веб-приложения, используя плагин maven-jetty-plugin. Я использую цель развертывания войны на этапе предварительного тестирования. Веб-приложение зависит от другого веб-приложения, которое я хотел бы высмеять, передавая статический контент из того же экземпляра Jetty.

вот соответствующая часть моей конфигурации пристани:

<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, но настройки обработчика контекста, похоже, игнорируются. Я не могу найти след в файлах журналов, причал возвращает 404 вместо статического содержание, само веб-приложение работает.

Чего мне не хватает?

1 Ответ

2 голосов
/ 30 марта 2012

Я понял это:

конфигурация resourceHandlers работает только для пристани: запустите цель, так что я сейчас работа с пустым веб-приложением в моем тестовом проекте, который накладывает веб-приложение на быть проверенным:

<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>
...