How to invoke p(j)ython script through ANT scripts do deploy WAR files on to Webshere. ?
The below is a simple ant script invoking python files which will deploy and un-deploy the given J2EE Apps in running Websphere server profile. 1. The ant script will invoke python files.
2. Ant script's target pathconvert will convert the property values containg back slashes in a file path to forward slashes.
3. Ant script target timestamp will print the time stamp along with message in the given log file. Takes care of new line character using 
 at the end of message ...
Ant Script to call jython scripts which will deploy and undeploy provided J2E WAR file.
Below is the Ant script.
hi
<project name="DeployFSAdmin" default="install" basedir=".">
<description>
Silent Deployment of WAR files
</description>
<property name="FSAdminLog" value="c:/FSAdmin_install.log" />
<target id="install" name="install" depends="pathconvert">
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting Server now" />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\startServer.bat" output="${FSAdminLog}" append="true">
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting FS Admin App Deployment now" />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\wsadmin.bat" output="${FSAdminLog}" append="true">
<arg value="-lang" />
<arg value="jython" />
<arg value="-username" />
<arg value="krishna" />
<arg value="-password" />
<arg value="krishna" />
<arg value="-f" />
<arg value="${deployFile}" />
<arg value="${updatedWARFile}" />
<arg value="FSAdminApp" />
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="FS Admin App Deployment completed" />
</antcall>
</target>
<target id="unistall" name="uninstall">
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting Server now." />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\startServer.bat" output="${FSAdminLog}" append="true">
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Un-Deployment of FS Admin in progress..." />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\wsadmin.bat" output="${FSAdminLog}" append="true">
<arg value="-lang" />
<arg value="jython" />
<arg value="-username" />
<arg value="krishna" />
<arg value="-password" />
<arg value="krishna" />
<arg value="-f" />
<arg value="${undeployFile}" />
<arg value="FSAdminApp" />
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Undeployment of FASApp completed" />
</antcall>
</target>
<!-- The target "pathconvert" is to convert all the windows back slahes into forward slashes-->
<target id="pathconvert" name="pathconvert">
<tempfile property="temp.file" />
<echo message="${warfile}" file="${temp.file}" />
<loadfile srcfile="${temp.file}" property="updatedWARFile">
<filterchain>
<replaceregex pattern="\\" replace="/" flags="g" />
</filterchain>
</loadfile>
<delete file="${temp.file}" />
</target>
<!-- To print the time stamp along with message in a log file -->
<target name="timestamp">
<tstamp>
<format property="logtime" pattern="yyyy.MM.dd ':' HH:mm:ss z" />
</tstamp>
<!-- New line charecter uasage 
 -->
<echo file="${LogFile}" message="
${logtime} : ${Message}.
" append="true" />
</target>
</project>
Below is the Deploying Python file.<project name="DeployFSAdmin" default="install" basedir=".">
<description>
Silent Deployment of WAR files
</description>
<property name="FSAdminLog" value="c:/FSAdmin_install.log" />
<target id="install" name="install" depends="pathconvert">
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting Server now" />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\startServer.bat" output="${FSAdminLog}" append="true">
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting FS Admin App Deployment now" />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\wsadmin.bat" output="${FSAdminLog}" append="true">
<arg value="-lang" />
<arg value="jython" />
<arg value="-username" />
<arg value="krishna" />
<arg value="-password" />
<arg value="krishna" />
<arg value="-f" />
<arg value="${deployFile}" />
<arg value="${updatedWARFile}" />
<arg value="FSAdminApp" />
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="FS Admin App Deployment completed" />
</antcall>
</target>
<target id="unistall" name="uninstall">
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Starting Server now." />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\startServer.bat" output="${FSAdminLog}" append="true">
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Un-Deployment of FS Admin in progress..." />
</antcall>
<exec executable="C:\\Program Files\\IBM\\WebSphere\\AppServer\\profiles\\AppSrv01\\bin\\wsadmin.bat" output="${FSAdminLog}" append="true">
<arg value="-lang" />
<arg value="jython" />
<arg value="-username" />
<arg value="krishna" />
<arg value="-password" />
<arg value="krishna" />
<arg value="-f" />
<arg value="${undeployFile}" />
<arg value="FSAdminApp" />
<arg value="server1" />
</exec>
<antcall target="timestamp">
<param name="LogFile" value="${FSAdminLog}" />
<param name="Message" value="Undeployment of FASApp completed" />
</antcall>
</target>
<!-- The target "pathconvert" is to convert all the windows back slahes into forward slashes-->
<target id="pathconvert" name="pathconvert">
<tempfile property="temp.file" />
<echo message="${warfile}" file="${temp.file}" />
<loadfile srcfile="${temp.file}" property="updatedWARFile">
<filterchain>
<replaceregex pattern="\\" replace="/" flags="g" />
</filterchain>
</loadfile>
<delete file="${temp.file}" />
</target>
<!-- To print the time stamp along with message in a log file -->
<target name="timestamp">
<tstamp>
<format property="logtime" pattern="yyyy.MM.dd ':' HH:mm:ss z" />
</tstamp>
<!-- New line charecter uasage 
 -->
<echo file="${LogFile}" message="
${logtime} : ${Message}.
" append="true" />
</target>
</project>
hi
'''
Created on Jan 18, 2012
@author: krishna
'''
import sys
#--------------------------------------------------------------
# Install an application onto this server
#--------------------------------------------------------------
def install(serverName, nodeName, app, appName=None):
print "Installing the application"
appOptions = "[-server " + serverName + " -node " + nodeName
if len(appName) != 0:
appOptions = appOptions + " -appname " + appName +" -contextroot " + appName
appOptions = appOptions + " -defaultbinding.virtual.host default_host -usedefaultbindings]"
print "Server Options: " + appOptions
AdminApp.install(app, appOptions)
#--------------------------------------------------------------
# Save all changes and stop the server
#--------------------------------------------------------------
print "Now saving all the configurations"
AdminConfig.save()
print "Now stoping the server"
AdminControl.stopServer(serverName, nodeName)
#-----------------------------------------------------------------
# Main
#-----------------------------------------------------------------
if (len(sys.argv) != 3):
print "This script requires 3 parameters:, , "
print "e.g.: argsDeployWARfile.py C:/Krish/SimpleJ2E_1.0.0.war SimpleJ2E server1"
else:
application = sys.argv[0]
appName = sys.argv[1]
print "application: " + application
print "app name: " + appName
nodeName = AdminControl.getNode()
print nodeName
serverName = sys.argv[2]
print serverName
install(serverName, nodeName, application, appName)
Below is the un-deploying Python file.'''
Created on Jan 18, 2012
@author: krishna
'''
import sys
#--------------------------------------------------------------
# Install an application onto this server
#--------------------------------------------------------------
def install(serverName, nodeName, app, appName=None):
print "Installing the application"
appOptions = "[-server " + serverName + " -node " + nodeName
if len(appName) != 0:
appOptions = appOptions + " -appname " + appName +" -contextroot " + appName
appOptions = appOptions + " -defaultbinding.virtual.host default_host -usedefaultbindings]"
print "Server Options: " + appOptions
AdminApp.install(app, appOptions)
#--------------------------------------------------------------
# Save all changes and stop the server
#--------------------------------------------------------------
print "Now saving all the configurations"
AdminConfig.save()
print "Now stoping the server"
AdminControl.stopServer(serverName, nodeName)
#-----------------------------------------------------------------
# Main
#-----------------------------------------------------------------
if (len(sys.argv) != 3):
print "This script requires 3 parameters:
print "e.g.: argsDeployWARfile.py C:/Krish/SimpleJ2E_1.0.0.war SimpleJ2E server1"
else:
application = sys.argv[0]
appName = sys.argv[1]
print "application: " + application
print "app name: " + appName
nodeName = AdminControl.getNode()
print nodeName
serverName = sys.argv[2]
print serverName
install(serverName, nodeName, application, appName)
hi
'''
Created on Jan 18, 2012
@author: krishna
'''
#-----------------------------------------------------------------
# Main
#-----------------------------------------------------------------
if (len(sys.argv) != 2):
print "This script requires 1 parameters:, "
print "e.g.: undeployWAR.py SimpleJ2E server1"
else:
appName = sys.argv[0]
print "application name: " + appName
serverName = sys.argv[1]
print "Server Name: " + serverName
nodeName = AdminControl.getNode()
AdminApp.uninstall (appName)
print "Now saving all the configurations"
AdminConfig.save()
print "Now stopping the server"
AdminControl.stopServer(serverName, nodeName)
'''
Created on Jan 18, 2012
@author: krishna
'''
#-----------------------------------------------------------------
# Main
#-----------------------------------------------------------------
if (len(sys.argv) != 2):
print "This script requires 1 parameters:
print "e.g.: undeployWAR.py SimpleJ2E server1"
else:
appName = sys.argv[0]
print "application name: " + appName
serverName = sys.argv[1]
print "Server Name: " + serverName
nodeName = AdminControl.getNode()
AdminApp.uninstall (appName)
print "Now saving all the configurations"
AdminConfig.save()
print "Now stopping the server"
AdminControl.stopServer(serverName, nodeName)
Popular Posts
-
The best solution to know about these init levels is to understand the " man init " command output on Unix. There are basically 8...
-
How to Unlock BSNL 3G data card to use it with Airtel and Vodafone Model no : LW272 ? How to unlock BSNL 3G data card( Model no : LW272 )us...
-
How to transfer bike registration from one State to other (Karnataka to Andhra)?? Most of us having two wheelers purchased and registered in...
-
ఓం శ్రీ స్వామియే శరణం ఆయ్యప్ప!! Related posts : Trip to Sabarimala - Part 1 Trip to Sabarimala - Part 2 Ayappa Deeksha required things...
-
Following are some of interesting blogs I found till now ...please comment to add your blog here. Blogs in English : http://nitawriter.word...
Popular posts
- Airtel and vodafone GPRS settings for pocket PC phones
- Andhra 2 America
- Ayyappa Deeksha required things
- Blogs I watch !
- Captions for your bike
- DB2 FAQs
- Deepavali Vs The Goddes of sleep
- ETV - Dhee D2 D3
- Evolution of smoking in India Women
- How to make credit card payments?
- init 0, init 1, init 2 ..
- Java-J2EE interview preparation
- mCheck Application jar or jad download
- My SQL FAQs
- My Travelogues
- Old is blod - New is italic
- Online pay methids for credit cards
- Oracle FAQs
- Pilgrimages
- Smoking in Indian Women
- Technology Vs Humans
- Twitter feeds for all Telugu stars on single page.
- Unix best practices
- Unix FAQs