使用servlet进行Tomcat编程部署而无需重启

时间:2013-04-18 10:46:24

标签: java tomcat

我想在java中创建一个可以自动创建servlet项目(如ide)的web项目。我完成了servlet项目创建部分,但是我的应用程序在运行时需要在服务器上部署新创建的项目。

我如何获得这个给出一些例子或建议。

3 个答案:

答案 0 :(得分:0)

通过autoDeploy的{​​{1}}检查您的Tomcat版本热部署 Tomcat Automatic_Application_Deployment

答案 1 :(得分:0)

如果你正在使用maven构建(你真的应该这样),这很简单。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <url>http://myHost:8080/manager/html</url>
                <server>localtomcat</server>
                <update>true</update>
                <path>/myApp</path>
            </configuration>
        </plugin>

然后在命令行上

mvn clean package tomcat:deploy

将卸载当前版本,并将新版本部署在war文件中

答案 2 :(得分:0)

你可以通过多种方式做到。其中一种方法是使用ANT,如果您熟悉的话(这假设您不是热部署但是进行编程部署)

<project name="ApplicationName" basedir="." default="redeploy">

<!-- Defining the properties for this build.xml -->
<property environment="sysenv" />
<property name="application.war" value="<ApplicationName>.war"/>
<property name="server.home" value="${sysenv.CATALINA_HOME}"/>
<property name="server.startup" value="startup.bat"/>
<property name="server.shutdown" value="shutdown.bat"/>  
<property name="server.deploy" value="${server.home}/webapps"/>


<!-- Moves the application war file to server deployment folder -->
<target name="moveOutputWar">
    <echo>Deleting already deployed war file in the server</echo>
            <delete file="${server.deploy}/${application.war}"/>

    <copy file="${application.war}" toDir="${server.deploy}"/>  
</target>   

<!-- Restarts the server -->
<target name="redeploy" depends="moveOutputJar">
<echo>Stopping the server</echo>
<exec executable="${server.home}/bin/${server.shutdown}" dir="${server.home}/bin"/>
<echo>Starting the server</echo>
<exec executable="${server.home}/bin/${server.startup}" dir="${server.home}/bin"/>
</target>

</project>
相关问题