一个小陷阱:如果用tomcat manager应用,即html页面点击reload,发起的HTTP请求的url:http://localhost:9032/manager/html/reload;jsessionid=BA373DFB9660EF7F30806C8BA2C6013C?path=/jerryjsp&org.apache.catalina.filters.CSRF_NONCE=9A8CB8A3E37A5A00E9B6B36629CEA257
而如果想使用catalina-ant.jar调用ant来通过命令行的方式reload应用,使用的url应该是http://localhost:8080/manager/text/reload?path=/examples,而不是http://localhost:8080/manager/html/reload?path=/examples,一定要注意!
这个功能很实用,比如ant成功build之后,给管理员发送一封邮件。
首先开发一个发送邮件的Java工具类:
package action;
public class MailSender
{
public static void main(String[] args)
{
String email = args[0];
notifyAdministratorviaEmail(email);
}
public static void notifyAdministratorviaEmail(String email){
System.out.println("Administrator "+ email + " has been notified");
}
}
我的.class文件在build/classes文件夹里:
build.xml里的设置:
<target name="notify">
<java dir = '.' fork="true" failοnerrοr="yes" classname="action.MailSender">
<classpath>
<pathelement path="build/classes" />
</classpath>
<arg line="jerry@test.com"/>
</java>
</target>
ant notify, 命令行的输出: