CentOS系統下Apache Ant自動從SVN獲取代碼並通過Tomcat集羣發佈工程

關於利用Ant自動從SVN服務器獲取代碼並通過Tomcat服務器集羣發佈工程的過程,涉及到Shell編程、Ant服務器配置、SVN服務器配置、Apache httpd服務器、Tomcat集羣服務器的配置,相關配置請了解其他博客。

        一、相關服務器配置說明:

          1、Apache httpd與Tomcat服務器集羣配置:http://blog.csdn.net/limingzhong198/article/details/19401443

          2、Ant服務器配置:http://blog.csdn.net/limingzhong198/article/details/19399605

          3、SVN服務器配置:http://blog.csdn.net/limingzhong198/article/details/21801091

          4、Shell編程請參考相關的書籍;

        二、關於Ant與Svn服務器的安裝目錄及其準備工作:

          1、Ant與Svn的安裝目錄:/usr/local;

          2、準備工作:啓動SVN服務器,關閉防火牆,準備好相關的ant與svn的聯合發佈的jar文件;

        三、操作過程:

          1、在ant目錄下新建目錄並賦予執行權限:

                [root@localhost ant]# mkdir ant-svn

                [root@localhost ant]# chmod u+x ant-svn

          2、svn服務器下一共兩個項目:mvc與test,如下圖所示:

               

          3、在ant-svn目錄下建立Ant發佈所需的build-mvc.xml與build-mvc.properties文件:

                build-mvc.properties內容:

  1. build.version=1.0.0  
  2.   
  3. svnant.jar=/usr/local/ant/lib/svnant.jar  
  4. svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar  
  5. svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar  
  6. java.lib=/usr/java/jdk1.6.0_30/lib  
  7.   
  8. debuglevel=source,lines  
  9. target=1.6  
  10. source=1.6  
  11.   
  12. workspace=/usr/local/ant/ant-svn/workspace  
  13. dist=${workspace}  
  14.   
  15. build=${workspace}/WebContent/WEB-INF/classes  
  16. lib=${workspace}/WebContent/WEB-INF/lib  
  17.   
  18. src=${workspace}/src  
  19. web=${workspace}/WebContent  
  20. tomcat1.home=/usr/local/tomcat1  
  21. tomcat2.home=/usr/local/tomcat2  
  22.   
  23. warfile=${dist}/${ant.project.name}.war  
  24.   
  25. svnUrl=svn://192.168.31.132/davesvn/mvc  
  26. svnUser=dave  
  27. svnPasswd=davepwd  
build.version=1.0.0

svnant.jar=/usr/local/ant/lib/svnant.jar
svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar
svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar
java.lib=/usr/java/jdk1.6.0_30/lib

debuglevel=source,lines
target=1.6
source=1.6

workspace=/usr/local/ant/ant-svn/workspace
dist=${workspace}

build=${workspace}/WebContent/WEB-INF/classes
lib=${workspace}/WebContent/WEB-INF/lib

src=${workspace}/src
web=${workspace}/WebContent
tomcat1.home=/usr/local/tomcat1
tomcat2.home=/usr/local/tomcat2

warfile=${dist}/${ant.project.name}.war

svnUrl=svn://192.168.31.132/davesvn/mvc
svnUser=dave
svnPasswd=davepwd

                文件重要語句說明:

                3-6行:主要表示的所需要的jar包,包括java的類庫;

                8-10行:是配置ant編譯所需要的資源級別和debug級別;

                12行:定義臨時存放發佈工程的文件目錄;

                15-19行:建立發佈工程的class、lib、src與web主目錄;

                20-21行:定義web服務器集羣配置下的tomcat節點路徑;

                23行:定義發佈工程的war包名稱;

                25-27行:定義用於抓取svn服務器工程代碼的svn服務路徑,以及操作svn的用戶名及其密碼;

                build-mvc.xml內容:

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2.   
  3. <project basedir="." name="mvc" default="auto">    
  4.    <property file="build-mvc.properties" />    
  5.     
  6.     <path id="svnant.lib">    
  7.        <pathelement location="${svnjavahl.jar}" />    
  8.        <pathelement location="${svnant.jar}" />    
  9.        <pathelement location="${svnClientAdapter.jar}" />    
  10.    </path>    
  11.     
  12.    <path id="java6">    
  13.         <fileset dir="${java.lib}">    
  14.            <include name="**/*.jar" />    
  15.        </fileset>    
  16.    </path>    
  17.     <path id="project.classpath">    
  18.        <pathelement location="${build}" />    
  19.        <fileset dir="${lib}" />    
  20.     </path>    
  21.    
  22.    <target name="clear">    
  23.       <delete dir="${workspace}" />    
  24.       <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />    
  25.       <delete dir="${tomcat.home}/webapps/${ant.project.name}" />    
  26.       <delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />    
  27.     </target>    
  28.     
  29.     <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />    
  30.     
  31.     <target name="svn" depends="clear">    
  32.         <mkdir dir="${workspace}"/>    
  33.         <svn username="${svnUser}" password="${svnPasswd}" javahl="false">    
  34.            <checkout url="${svnUrl}" destPath="${workspace}" />    
  35.         </svn>    
  36.     </target>    
  37.     
  38.     <target name="compile" depends="svn" description="======compile project======">    
  39.         <mkdir dir="${build}" />    
  40.         <copy includeemptydirs="false" todir="${build}">    
  41.             <fileset dir="${src}" excludes="**/*.java"/>    
  42.        </copy>  
  43.             
  44.         <javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build}" source="${source}" target="${target}" encoding="utf-8">    
  45.             <src path="${src}" />  
  46.             <classpath>    
  47.                <path refid="project.classpath">    
  48.                </path>    
  49.               <path refid="java6">    
  50.              </path>    
  51.           </classpath>    
  52.       </javac>        
  53.     </target>    
  54.    
  55.    <target name="war" depends="compile" description="======compress j2ee war file======">    
  56.         <mkdir dir="${dist}" />    
  57.         <war destfile="${warfile}" webxml="${web}/WEB-INF/web.xml">    
  58.             <fileset dir="${web}">  
  59.                                 <include name="**/*.jsp"/>  
  60.                                 <include name="**/*-servlet.xml"/>  
  61.                                 <include name="**/applicationContext.xml"/>  
  62.                         </fileset>  
  63.                         <lib dir ="${lib}"/>  
  64.                         <classes dir ="${build}"/>    
  65.         </war>    
  66.    </target>    
  67.      
  68.     <target name="shutdowntomcat" description="========shutdowntomcat===========">    
  69.         <exec executable="${tomcat1.home}/bin/shutdown.sh" failonerror="false"></exec>  
  70.         <sleep seconds="10"/>   
  71.         <exec executable="${tomcat2.home}/bin/shutdown.sh" failonerror="false"></exec>   
  72.         <sleep seconds="10"/>   
  73.         <echo message="it is secuessful of tomcat's shutdownning !" />   
  74.    </target>    
  75.         
  76.    <target name="startuptomcat" description="========startuptomcat===========">    
  77.         <sleep seconds="5"/>    
  78.         <exec executable="${tomcat1.home}/bin/startup.sh" failonerror="false"></exec>  
  79.         <sleep seconds="5"/>  
  80.         <exec executable="${tomcat2.home}/bin/startup.sh" failonerror="false"></exec>  
  81.         <echo message="it is secuessful of tomcat's startuping !" />    
  82.     </target>    
  83.     
  84.    <target name="deploy" depends="war">    
  85.         <copy file="${warfile}" todir="${tomcat1.home}/webapps" />  
  86.         <copy file="${warfile}" todir="${tomcat2.home}/webapps" />  
  87.         <echo message="it is secuessful of project deploy !" />    
  88.     </target>    
  89.         
  90.     <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">    
  91.         <echo message="DONE!!!!" />    
  92.     </target>    
  93. </project>    
<?xml version="1.0" encoding="UTF-8"?>  

<project basedir="." name="mvc" default="auto">  
   <property file="build-mvc.properties" />  
  
    <path id="svnant.lib">  
       <pathelement location="${svnjavahl.jar}" />  
       <pathelement location="${svnant.jar}" />  
       <pathelement location="${svnClientAdapter.jar}" />  
   </path>  
  
   <path id="java6">  
        <fileset dir="${java.lib}">  
           <include name="**/*.jar" />  
       </fileset>  
   </path>  
    <path id="project.classpath">  
       <pathelement location="${build}" />  
       <fileset dir="${lib}" />  
    </path>  
 
   <target name="clear">  
      <delete dir="${workspace}" />  
      <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />  
      <delete dir="${tomcat.home}/webapps/${ant.project.name}" />  
      <delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />  
    </target>  
  
    <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />  
  
    <target name="svn" depends="clear">  
        <mkdir dir="${workspace}"/>  
        <svn username="${svnUser}" password="${svnPasswd}" javahl="false">  
           <checkout url="${svnUrl}" destPath="${workspace}" />  
        </svn>  
    </target>  
  
    <target name="compile" depends="svn" description="======compile project======">  
        <mkdir dir="${build}" />  
        <copy includeemptydirs="false" todir="${build}">  
            <fileset dir="${src}" excludes="**/*.java"/>  
       </copy>
          
        <javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build}" source="${source}" target="${target}" encoding="utf-8">  
            <src path="${src}" />
            <classpath>  
               <path refid="project.classpath">  
               </path>  
              <path refid="java6">  
             </path>  
          </classpath>  
      </javac>      
    </target>  
 
   <target name="war" depends="compile" description="======compress j2ee war file======">  
        <mkdir dir="${dist}" />  
        <war destfile="${warfile}" webxml="${web}/WEB-INF/web.xml">  
            <fileset dir="${web}">
                                <include name="**/*.jsp"/>
                                <include name="**/*-servlet.xml"/>
                                <include name="**/applicationContext.xml"/>
                        </fileset>
                        <lib dir ="${lib}"/>
                        <classes dir ="${build}"/>  
        </war>  
   </target>  
   
    <target name="shutdowntomcat" description="========shutdowntomcat===========">  
        <exec executable="${tomcat1.home}/bin/shutdown.sh" failοnerrοr="false"></exec>
        <sleep seconds="10"/> 
        <exec executable="${tomcat2.home}/bin/shutdown.sh" failοnerrοr="false"></exec> 
        <sleep seconds="10"/> 
        <echo message="it is secuessful of tomcat's shutdownning !" /> 
   </target>  
      
   <target name="startuptomcat" description="========startuptomcat===========">  
        <sleep seconds="5"/>  
        <exec executable="${tomcat1.home}/bin/startup.sh" failοnerrοr="false"></exec>
        <sleep seconds="5"/>
        <exec executable="${tomcat2.home}/bin/startup.sh" failοnerrοr="false"></exec>
        <echo message="it is secuessful of tomcat's startuping !" />  
    </target>  
  
   <target name="deploy" depends="war">  
        <copy file="${warfile}" todir="${tomcat1.home}/webapps" />
        <copy file="${warfile}" todir="${tomcat2.home}/webapps" />
        <echo message="it is secuessful of project deploy !" />  
    </target>  
      
    <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">  
        <echo message="DONE!!!!" />  
    </target>  
</project>  

                文件重要語句說明:

                3行:定義project的相關信息,包括名稱,默認處理的target等信息;

                4行:定義ANT引用的屬性文件;

                6行:定義了Svn所需要用到的jar包位置;

                12行:定義java類庫文件lib;

                17行:定義編譯所需要的文件目錄及其使用的lib包;

                22行:定義清理相關文件目錄的target;

                29行:定義svn抽取代碼的相關配置任務;

                31行:定義svn抽取代碼的target

                38行:定義編譯的target

                55行:根據相關配置生成發佈的war

                68行:定義關閉tomcat集羣中的節點target,從代碼中可以看出,定義了兩個tomcat節點

                76行:定義啓動tomcat集羣中的節點target,從代碼中可以看出,定義了兩個tomcat節點

                84行:定義發佈工程的的target

                90行:定義Ant執行工作的開始target

                注:相關標籤的含義請查閱其他的相關資料。

          4、在Ant-Svn目錄下建立一個臨時存放編譯和發佈工作的workspace目錄:

                [root@localhost ant-svn]# mkdir workspace

                [root@localhost ant-svn]# chmod u+x workspace

          5、建立批量執行發佈命令的Shell程序文件batch-ant.sh:

  1. #!/bin/sh  
  2.   
  3. echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log  
  4. echo "============================   batch-ant-exe    =========================" >> /usr/local/ant/ant-svn/res.log  
  5. echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log  
  6.   
  7. date >> /usr/local/ant/ant-svn/res.log  
  8. echo "============================   init the env start   =====================" >> /usr/local/ant/ant-svn/res.log  
  9. export JAVA_HOME=/usr/java/jdk1.6.0_30  
  10. export JAVA_BIN=/usr/java/jdk1.6.0_30/bin  
  11.   
  12. export ANT_HOME=/usr/local/ant  
  13.   
  14. export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin  
  15. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
  16. export JAVA_HOME JAVA_BIN ANT_HOME PATH CLASSPATH  
  17. echo "============================   init the env  end   ======================" >> /usr/local/ant/ant-svn/res.log  
  18.   
  19. echo "============================   close apache the env start   =============" >> /usr/local/ant/ant-svn/res.log  
  20. /usr/local/apache/bin/apachectl -k stop  
  21. echo "============================   close apache the env end     =============" >> /usr/local/ant/ant-svn/res.log  
  22.   
  23. date >> /usr/local/ant/ant-svn/res.log  
  24. echo "============================   execute the ant cmd start    =============" >> /usr/local/ant/ant-svn/res.log  
  25. cd /usr/local/ant/ant-svn  
  26. ant -buildfile build-mvc.xml  
  27. echo &date  
  28. #sleep 1m  
  29. #echo &date  
  30. #ant -buildfile build-test.xml  
  31. #echo "===========================  execute the ant cmd end      ==== =========" >> /usr/local/ant/ant-svn/res.log  
  32. #date >> /usr/local/ant/ant-svn/res.log  
  33.   
  34. echo "============================   open apache the env start   ==============" >> /usr/local/ant/ant-svn/res.log  
  35. /usr/local/apache/bin/apachectl -k start  
  36. echo "============================   open apache the env end     ==============" >> /usr/local/ant/ant-svn/res.log  
#!/bin/sh

echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log
echo "============================   batch-ant-exe    =========================" >> /usr/local/ant/ant-svn/res.log
echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log

date >> /usr/local/ant/ant-svn/res.log
echo "============================   init the env start   =====================" >> /usr/local/ant/ant-svn/res.log
export JAVA_HOME=/usr/java/jdk1.6.0_30
export JAVA_BIN=/usr/java/jdk1.6.0_30/bin

export ANT_HOME=/usr/local/ant

export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN ANT_HOME PATH CLASSPATH
echo "============================   init the env  end   ======================" >> /usr/local/ant/ant-svn/res.log

echo "============================   close apache the env start   =============" >> /usr/local/ant/ant-svn/res.log
/usr/local/apache/bin/apachectl -k stop
echo "============================   close apache the env end     =============" >> /usr/local/ant/ant-svn/res.log

date >> /usr/local/ant/ant-svn/res.log
echo "============================   execute the ant cmd start    =============" >> /usr/local/ant/ant-svn/res.log
cd /usr/local/ant/ant-svn
ant -buildfile build-mvc.xml
echo &date
#sleep 1m
#echo &date
#ant -buildfile build-test.xml
#echo "===========================  execute the ant cmd end      ==== =========" >> /usr/local/ant/ant-svn/res.log
#date >> /usr/local/ant/ant-svn/res.log

echo "============================   open apache the env start   ==============" >> /usr/local/ant/ant-svn/res.log
/usr/local/apache/bin/apachectl -k start
echo "============================   open apache the env end     ==============" >> /usr/local/ant/ant-svn/res.log

                文件重要語句說明:

                9-16行:引入相關的環境變量,包括java、ant;

                20行:關閉apache tomcat集羣服務器;

                26行:ant命令,執行build-mvc.xml文件內容;

                35行:啓動apache tomcat集羣服務器; 

                注:shell編程請參閱其他資料。               

          6、建立監控結果文件:res.log

                [root@localhost ant-svn]# touch res.log

          7、執行批處理Shell腳本batch-ant.sh文件:

                [root@localhost ant-svn]# sh batch-ant.sh

                顯示結果:

  1. httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName  
  2. httpd (no pid file) not running  
  3. Buildfile: /usr/local/ant/ant-svn/build-mvc.xml  
  4.   
  5. shutdowntomcat:  
  6.      [exec] Feb 19, 2014 7:04:09 AM org.apache.catalina.startup.Catalina stopServer  
  7.      [exec] SEVERE: Catalina.stop:   
  8.      [exec] java.net.ConnectException: Connection refused  
  9.      [exec]     at java.net.PlainSocketImpl.socketConnect(Native Method)  
  10.      [exec]     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)  
  11.      [exec]     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)  
  12.      [exec]     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)  
  13.      [exec]     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)  
  14.      [exec]     at java.net.Socket.connect(Socket.java:529)  
  15.      [exec]     at java.net.Socket.connect(Socket.java:478)  
  16.      [exec]     at java.net.Socket.<init>(Socket.java:375)  
  17.      [exec]     at java.net.Socket.<init>(Socket.java:189)  
  18.      [exec]     at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)  
  19.      [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  20.      [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  21.      [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  22.      [exec]     at java.lang.reflect.Method.invoke(Method.java:597)  
  23.      [exec]     at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)  
  24.      [exec]     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)  
  25.      [exec] Feb 19, 2014 7:04:20 AM org.apache.catalina.startup.Catalina stopServer  
  26.      [exec] SEVERE: Catalina.stop:   
  27.      [exec] java.net.ConnectException: Connection refused  
  28.      [exec]     at java.net.PlainSocketImpl.socketConnect(Native Method)  
  29.      [exec]     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)  
  30.      [exec]     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)  
  31.      [exec]     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)  
  32.      [exec]     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)  
  33.      [exec]     at java.net.Socket.connect(Socket.java:529)  
  34.      [exec]     at java.net.Socket.connect(Socket.java:478)  
  35.      [exec]     at java.net.Socket.<init>(Socket.java:375)  
  36.      [exec]     at java.net.Socket.<init>(Socket.java:189)  
  37.      [exec]     at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)  
  38.      [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  39.      [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  40.      [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  41.      [exec]     at java.lang.reflect.Method.invoke(Method.java:597)  
  42.      [exec]     at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)  
  43.      [exec]     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)  
  44.      [echo] it is secuessful of tomcat's shutdownning !  
  45.   
  46. clear:  
  47.    [delete] Deleting directory /usr/local/ant/ant-svn/workspace  
  48.   
  49. svn:  
  50.     [mkdir] Created dir: /usr/local/ant/ant-svn/workspace  
  51.       [svn] Deprecated attribute 'username'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.  
  52.       [svn] Deprecated attribute 'password'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.  
  53.       [svn] Deprecated attribute 'javahl'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.  
  54.   
  55. compile:  
  56.     [mkdir] Created dir: /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes  
  57.     [javac] /usr/local/ant/ant-svn/build-mvc.xml:44: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds  
  58.     [javac] Compiling 4 source files to /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes  
  59.   
  60. war:  
  61.       [war] Building war: /usr/local/ant/ant-svn/workspace/mvc.war  
  62.   
  63. deploy:  
  64.      [copy] Copying 1 file to /usr/local/tomcat1/webapps  
  65.      [copy] Copying 1 file to /usr/local/tomcat2/webapps  
  66.      [echo] it is secuessful of project deploy !  
  67.   
  68. startuptomcat:  
  69.      [echo] it is secuessful of tomcat's startuping !  
  70.   
  71. auto:  
  72.      [echo] DONE!!!!  
  73.   
  74. BUILD SUCCESSFUL  
  75. Total time: 48 seconds  
  76. Wed Feb 19 07:04:52 PST 2014  
  77.   
  78. httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName  
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
httpd (no pid file) not running
Buildfile: /usr/local/ant/ant-svn/build-mvc.xml

shutdowntomcat:
     [exec] Feb 19, 2014 7:04:09 AM org.apache.catalina.startup.Catalina stopServer
     [exec] SEVERE: Catalina.stop: 
     [exec] java.net.ConnectException: Connection refused
     [exec]     at java.net.PlainSocketImpl.socketConnect(Native Method)
     [exec]     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
     [exec]     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
     [exec]     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
     [exec]     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
     [exec]     at java.net.Socket.connect(Socket.java:529)
     [exec]     at java.net.Socket.connect(Socket.java:478)
     [exec]     at java.net.Socket.<init>(Socket.java:375)
     [exec]     at java.net.Socket.<init>(Socket.java:189)
     [exec]     at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
     [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
     [exec]     at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
     [exec]     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
     [exec] Feb 19, 2014 7:04:20 AM org.apache.catalina.startup.Catalina stopServer
     [exec] SEVERE: Catalina.stop: 
     [exec] java.net.ConnectException: Connection refused
     [exec]     at java.net.PlainSocketImpl.socketConnect(Native Method)
     [exec]     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
     [exec]     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
     [exec]     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
     [exec]     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
     [exec]     at java.net.Socket.connect(Socket.java:529)
     [exec]     at java.net.Socket.connect(Socket.java:478)
     [exec]     at java.net.Socket.<init>(Socket.java:375)
     [exec]     at java.net.Socket.<init>(Socket.java:189)
     [exec]     at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
     [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
     [exec]     at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
     [exec]     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
     [echo] it is secuessful of tomcat's shutdownning !

clear:
   [delete] Deleting directory /usr/local/ant/ant-svn/workspace

svn:
    [mkdir] Created dir: /usr/local/ant/ant-svn/workspace
      [svn] Deprecated attribute 'username'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.
      [svn] Deprecated attribute 'password'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.
      [svn] Deprecated attribute 'javahl'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.

compile:
    [mkdir] Created dir: /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes
    [javac] /usr/local/ant/ant-svn/build-mvc.xml:44: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 4 source files to /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes

war:
      [war] Building war: /usr/local/ant/ant-svn/workspace/mvc.war

deploy:
     [copy] Copying 1 file to /usr/local/tomcat1/webapps
     [copy] Copying 1 file to /usr/local/tomcat2/webapps
     [echo] it is secuessful of project deploy !

startuptomcat:
     [echo] it is secuessful of tomcat's startuping !

auto:
     [echo] DONE!!!!

BUILD SUCCESSFUL
Total time: 48 seconds
Wed Feb 19 07:04:52 PST 2014

httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

                文件重要語句說明:

                1-2行:執行ant文件的關閉apache tomcat 集羣服務器配置的結果;

                3行:執行ant命令;

                5行:執行名爲shutdowntomcat的target標籤,關閉tomcat服務,包括tomcat1與tomcat2兩個節點服務;

                8、27行:表示在關閉tomcat服務時,原本tomcat服務根本沒有打開,所以在關閉時提示連接被拒絕;

                46行:執行名爲clear的target標籤

                49行:執行名爲svn的target標籤,從svn服務器獲取相關項目的代碼;

                55行:執行名爲compile的target標籤,編譯工程;

                60行:執行名爲war的target標籤,生成發佈的war包;

                63行:執行名爲deploy的target標籤,發佈工程;

                68行:執行名爲startuptomcat的target標籤,啓動tomcat服務,包括tomcat1與tomcat2兩個節點服務

                71行:執行名爲auto的target標籤,實際上只是一個執行入口;

                74行:表示執行ant命令成功

                78行:執行ant文件的啓動apache tomcat 集羣服務器配置的結果

          8、在瀏覽器中輸入:http://192.168.31.132/mvc/index.jsp,結果如下圖所示:

                

               從圖中可以看出發佈成功。

          注:1、以上過程在Centos 6.3所屬32位系統下調試通過;

                 2、shell腳本中沒有處理異常。

http://blog.csdn.net/limingzhong198/article/details/19477823

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章