使用maven-jetty,tomcat部署多个战争?

时间:2012-08-02 20:09:34

标签: java web-applications maven jetty

我想部署多个webapps并运行maven jetty插件或tomcat插件。 但我似乎无法让他们工作。 我的主要目标是启动服务器将所有的webapps,因为他们相互依赖。 我该如何实现这一目标? 我尝试使用maven jetty插件 - 创建了一个带有多个contextHandlers的单独项目

<plugin>
        <groupId>org.mortbay.jetty</groupId>    
        <artifactId>jetty-maven-plugin</artifactId>
        <version>8.1.2.v20120308</version>
        <configuration>
            <contextHandlers>
                <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
                    <contextPath>/data-emulator</contextPath>
                    <resourceBase>${basedir}/../data-emulator/target/</resourceBase>

                </contextHandler>

                <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
                    <contextPath>/service</contextPath>
                    <resourceBase>${basedir}/../service/target/</resourceBase>

                </contextHandler>

                <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
                    <contextPath>/client</contextPath>
                    <resourceBase>${basedir}/../client/target/</resourceBase>

                </contextHandler>
            </contextHandlers>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
                <port>8080</port>
                <maxIdleTime>60000</maxIdleTime>
            </connector>

        </configuration>
    </plugin>

1 个答案:

答案 0 :(得分:2)

您的 resourceBase 参数不正确。 目标文件夹不包含您的网页和WEB-INF文件夹(除非您有特殊的构建后任务复制输出文件)。

您应该使用 war 参数。以下示例:

<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
    <contextPath>/data-emulator</contextPath>
    <war>${basedir}/../data-emulator/target/data-emulator.war</war>    
</contextHandler>