使用embeded tomcat进行嵌入式javaee开发-程序更新

     一般情况下,在进行客户程序的更新时,通常是由维护人员手动将更新程序(或整个项目程序),重新copy至客户的服务器上,并重新启动相应的web容器来达到程序更新的目的。不过,这样有一个缺点,就是每次更新时,必须需要维护人员在现场进行。对于,客户离公司远,并且更新又频繁(比如,小修小改)时,这种情况就得不偿失了。所以,能够有一个自动更新的程序,在指定的时间将程序进行更新,并且重新启动相应的web服务器,这样就最好了。
    本文通过使用svnkit来进行程序的更新,描述了基本的svn使用,以及一个简单的更新流程。

    首先,下载svnkit,如下所示:

<dependency>
			<groupId>org.tmatesoft.svnkit</groupId>
			<artifactId>svnkit</artifactId>
			<version>1.3.4</version>
			<exclusions>
				<exclusion>
					<groupId>net.java.dev.jna</groupId>
					<artifactId>jna</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.tmatesoft.sqljet</groupId>
					<artifactId>sqljet</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

    其中,不需要下载相引用的jna,也不需要下载相应的sqljet,因为简单的更新用不到上面的两个依赖包。然后,简单的运用相应的api即可。
    第一步,我们需要得到相对应工程的版本号(同样使用这个方法判断一个目录是否是svn项目)

/** 取得某个文件或目录的版本 */
	public long getVersion() throws SVNException {
		SVNStatusClient svnStatusClient = clientManager.getStatusClient();
		return svnStatusClient.doStatus(file, false).getRevision().getNumber();
	}

    第二步,我们需要取得当前项目需要更新到的指定版本,这个实现很多。笔者的一个实现方法,就是将当前项目的最新版本存放在公司服务器上的一个静态文本中,通过读取这个文本取得当前项目的最新版本,然后再将项目更新到这个版本。这样避免了,直接更新时,总是更新至最新版本的问题(因为可能最新版本并未正式向用户发布,或者还不便于更新)

     第三步,即将项目更新到指定的版本即可:

/** 更新项目至指定版本 */
	public void update(long version) throws SVNException {
		SVNUpdateClient svnUpdateClient = clientManager.getUpdateClient();
		svnUpdateClient.doUpdate(file, SVNRevision.create(version), SVNDepth.INFINITY, false, false);
	}

    通过以上几个方法,即可达到程序更新的目的。待更新完毕之后,我们可以重新启动相应的tomcat,以达到重新加载的目的。

转载请标明出处:i flym
本文地址:https://www.iflym.com/index.php/code/use-embeded-tomcat-to-javaee-update-programe.html

相关文章:

作者: flym

I am flym,the master of the site:)

发表评论

邮箱地址不会被公开。 必填项已用*标注