Tomcat远程部署:
tomcat提供了一套ant部署方案,但是项目中需要从程序中进行构件的远程部署,因此研究了一下tomcat的源码,给了一个简单的方案:
对于远端Tomcat服务器的配置:
1.修改远端tomcat的conf/tomcat-users.xml文件,添加manager角色,将其中一个用户设为manager角色
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager"/>
2.访问http://ip:port/,如果能通过tomcat/tomcat进入管理平台就证明你成功了]
程序代码如下:
接口:
package org.daragon.tomcat.manager;
import java.net.URL;
/**
*
* @author daragon
*
*/
public interface ITomcatManager {
public void deploy(URL war, boolean update);
public void undeploy();
public void reload();
public void start();
public void stop();
}
实现类:
package org.daragon.tomcat.manager;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.catalina.ant.AbstractCatalinaTask;
import org.apache.catalina.ant.DeployTask;
import org.apache.catalina.ant.ReloadTask;
import org.apache.catalina.ant.StartTask;
import org.apache.catalina.ant.StopTask;
import org.apache.catalina.ant.UndeployTask;
/**
* Tomcat Deploy Manager <br>
* Description : The Class {@link TomcatManager} is used to deploy your war file
* remotely. and also, it can also undeploy,reload, start and stop your app. by
* default, the user must have do as the role of manager on tomcat. you can
* change that in <em>%CATALINA_HOME%/conf/tomcat-users.xml</em>
*
* <em>Example:</em> 1. this will deploy a web app in tomcat. <code>
* TomcatManager manager = new TomcatManager();
* manager.setUsername("tomcat");
* manager.setPassword("tomcat");
* manager.setPath("/myapp");
* manager.setUrl("http://ip:port/manager");
* manager.deploy(new File("/home/daragon/myapp.war"),true);
* </code>
*
* @version 1.0
* @since 2009-09-26
* @author daragon
*
*/
public class TomcatManager extends AbstractCatalinaTask implements
ITomcatManager {
private String path = null;
/**
* deploy one web app with the given location of war .
*/
public void deploy(URL war, boolean update) {
DeployTask deployer = new DeployTask();
deployer.setPath(path);
deployer.setUsername(username);
deployer.setPassword(password);
deployer.setUrl(url);
deployer.setWar(war.toString());
deployer.setUpdate(update);
deployer.execute();
}
/**
*
* @param warFile
* @param update
* @throws MalformedURLException
*/
public void deploy(File warFile, boolean update)
throws MalformedURLException {
this.deploy(warFile.toURI().toURL(), update);
}
/**
* undeploy app
*/
public void undeploy() {
UndeployTask undeployer = new UndeployTask();
undeployer.setPath(path);
undeployer.setUrl(url);
undeployer.setUsername(username);
undeployer.setPassword(password);
undeployer.execute();
}
/**
* reload app.
*/
public void reload() {
ReloadTask reloader = new ReloadTask();
reloader.setPath(path);
reloader.setUrl(url);
reloader.setUsername(username);
reloader.setPassword(password);
reloader.execute();
}
/**
* start app by remotely
*/
public void start() {
StartTask starter = new StartTask();
starter.setPath(path);
starter.setUrl(url);
starter.setUsername(username);
starter.setPassword(password);
starter.execute();
}
/**
* stop the app
*/
public void stop() {
StopTask stopper = new StopTask();
stopper.setPath(path);
stopper.setUrl(url);
stopper.setUsername(username);
stopper.setPassword(password);
stopper.execute();
}
public String getPath() {
return path;
}
/**
* configure the context path of your web app.
*
* @param path
*/
public void setPath(String path) {
this.path = path;
}
}
调用方法已经在注释中给出了。
分享到:
相关推荐
本文将详细介绍如何通过编辑`tomcat-users.xml`文件、添加`manager.xml`配置文件、修改Maven的`settings.xml`文件以及在项目`pom.xml`中添加特定插件等方式来实现Tomcat与Maven的远程部署。 #### 二、编辑远程...
标题“利用Tomcat远程部署解决修改类后重启Tomcat问题”揭示了主要关注点在于如何在不手动重启Tomcat服务器的情况下,实现应用的热更新或快速部署。这通常涉及到Tomcat的管理工具,特别是它的Manager应用程序,以及...
在IT行业中,尤其是在Java应用程序开发领域,Tomcat服务器和高效的开发工具是不可或缺的。本文将深入探讨如何配置Tomcat的远程调试以及利用JRebel实现热部署,这将极大地提高开发效率。 首先,Tomcat远程调试允许...
例如,Maven的`tomcat7-maven-plugin`或`tomcat8-maven-plugin`可以直接将应用部署到本地或远程的Tomcat服务器。 总之,部署Java Web项目到Tomcat服务器是一个多步骤的过程,涉及到服务器配置、项目打包以及服务器...
在Tomcat服务器上部署并运行Web项目是Java EE开发中常见的操作,通常涉及以下知识点: 1. **Myeclipse IDE的使用**:Myeclipse是一个集成开发环境,它支持多种应用程序开发,包括Java EE。Myeclipse通常用于Web项目...
Context 是 Tomcat 服务器中的一种虚拟主机,可以用来配置应用程序的部署路径和名称。在 server.xml 文件中,我们添加了一个新的 Context,如下所示: ```xml <Context path="/bbsb" docBase="D:\\apache-tomcat-...
在Java Web开发中,Tomcat服务器是我们常见的应用服务器,它用于部署和运行Servlet和JSP应用。然而,在开发过程中,我们常常会遇到需要进行远程调试的情况,以便解决复杂的代码问题。这篇内容将详细介绍如何进行...
通过上述步骤,你可以实现在本地Eclipse环境中对部署在远程Tomcat服务器上的应用程序进行高效地调试。这对于团队协作和分布式开发尤其有用,可以帮助开发者快速定位问题并提高工作效率。希望本教程能帮助你在日常...
- 或者,通过管理界面(例如:Tomcat Manager)进行远程部署。 - 部署后,通过http://localhost:8080/项目名访问应用。 5. **调试与优化**: - 使用日志框架(如Log4j)记录应用程序运行过程中的信息,便于问题...
9. **安全性**:在实际生产环境中,除了配置端口,还需要考虑其他安全措施,如更新Tomcat到最新稳定版以防止已知的安全漏洞,限制远程访问,以及设置合适的用户权限。 总之,部署Tomcat在Windows下涉及下载、解压、...
通过远程调试,开发人员可以在本地环境中对部署在服务器上的应用程序进行调试,这对于发现和解决生产环境中的问题具有重要意义。本文将详细介绍如何在Tomcat服务器环境下配置远程调试。 #### 二、准备工作 在开始...
Tomcat的热部署功能使得开发人员能够在开发过程中实时看到代码更改的效果,而无需重新启动服务器。这对于快速迭代的项目尤其重要,因为它节省了频繁重启服务器的时间。然而,Tomcat默认并不开启热部署,需要通过一些...
除了上述几种部署方式外,Tomcat 还提供了一个基于 Web 的 Manager 应用程序,用于远程部署和管理应用。使用 Manager 应用程序进行部署时,需要先配置好用户权限。具体步骤如下: 1. **配置用户权限**:编辑 `conf/...
6. **远程部署**:通过管理工具如Apache Tomcat Manager或JMX接口,可以实现远程部署和管理应用,需要在`conf/tomcat-users.xml`中添加具有相应权限的用户。 7. **安全配置**:为了防止未授权访问,应设置防火墙...
在当今的IT行业中,远程部署Web应用程序已经成为了日常工作的一部分。Apache Tomcat作为一款流行的开源Web应用服务器,它提供了一个名为Manager的应用程序来帮助我们管理和部署Web应用。其中,ManagerServlet是一个...
在IT行业中,Tomcat是一个广泛使用的开源Web服务器和Java应用服务器,特别适合部署Servlet和JSP应用程序。远程调试功能在开发和排错过程中极其重要,因为它允许开发者在不直接访问服务器的情况下检查代码运行状态,...
- JMX(Java Management Extensions)可以远程监控Tomcat的运行状态。 9. **与其他应用服务器集成**: - Tomcat可以作为独立服务器,也可以与Spring Boot、EJB容器(如JBoss、WebLogic)等结合使用。 10. **故障...
为了能够通过Maven进行远程部署,首先需要对Tomcat6服务器进行相应的配置。 ##### 1. 添加管理员账户 在`/conf/tomcat-users.xml`文件中增加一个具有`manager`权限的角色和用户: ```xml ``` 这里创建了一个名...