|
第一种方法:
<javaclassname="weblogic.WLST"fork="false"failOnError="true">
<classpathrefid="wls.classpath"/>
<argline="wlst/createCluster.pymydomain"/>
</java>
成功执行
第二种方法
<taskdefname="wlst"
classname="weblogic.ant.taskdefs.management.WLSTTask"
classpathref="wls.classpath"/>
<wlstfileName="wlst/createCluster.py"
arguments="mydomain"
debug="true"
failOnError="true">
</wlst>
运行上面脚本后,ant输出如下内容,抛出了异常,但是执行的结果的是正确的,也就是说创建的域是正确的,但是在脚本的最后执行exit()方法时,抛出了异常,我想这里的问题应该是fork的问题,在第一个方法中可以自行控制启动的是否是一个独立的进程,而第二种方法不能控制,只能是一个进程,所以在执行exit()方法时,不但退出了wlst脚本的执行,也退出了ant进程。
抛出的异常
wlst.creatCluster:
[wlst]<WLSTTask>Addingtest1tosys.argv
[wlst]<WLSTTask>sys.argvis['wlst/createCluster.py','test1']
[wlst]<WLSTTask>Thescriptthatwillbeexecuted
[wlst]ExitingWebLogicScriptingTool.
BUILDFAILED
F:work_topfounderworkspacecallcenteruild-wls.xml:185:Traceback(innermostlast):
File"wlstcreateCluster.py",line127,in?
File"<iostream>",line46,inexit
org.eclipse.ant.internal.ui.antsupport.AntSecurityException
atorg.eclipse.ant.internal.ui.antsupport.AntSecurityManager.checkExit(AntSecurityManager.java:54)
atjava.lang.Runtime.exit(Runtime.java:88)
atjava.lang.System.exit(System.java:868)
atweblogic.management.scripting.WLScriptContext.exit(WLScriptContext.java:579)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
atjava.lang.reflect.Method.invoke(Method.java:585)
atorg.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:160)
atorg.python.core.PyMethod.__call__(PyMethod.java:96)
atorg.python.core.PyObject.__call__(PyObject.java:283)
atorg.python.core.PyObject.invoke(PyObject.java:2055)
atorg.python.pycode._pyx6.exit$3(<iostream>:46)
atorg.python.pycode._pyx6.call_function(<iostream>)
atorg.python.core.PyTableCode.call(PyTableCode.java:208)
atorg.python.core.PyTableCode.call(PyTableCode.java:404)
atorg.python.core.PyTableCode.call(PyTableCode.java:253)
atorg.python.core.PyFunction.__call__(PyFunction.java:169)
atorg.python.pycode._pyx16.f$0(wlstcreateCluster.py:127)
atorg.python.pycode._pyx16.call_function(wlstcreateCluster.py)
atorg.python.core.PyTableCode.call(PyTableCode.java:208)
atorg.python.core.PyCode.call(PyCode.java:14)
atorg.python.core.Py.runCode(Py.java:1135)
atorg.python.core.__builtin__.execfile_flags(__builtin__.java:308)
atorg.python.util.PythonInterpreter.execfile(PythonInterpreter.java:158)
atweblogic.management.scripting.utils.WLSTInterpreter.execfile(WLSTInterpreter.java:305)
atweblogic.ant.taskdefs.management.WLSTTask.execute(WLSTTask.java:108)
atorg.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
atorg.apache.tools.ant.Task.perform(Task.java:364)
atorg.apache.tools.ant.Target.execute(Target.java:341)
atorg.apache.tools.ant.Target.performTasks(Target.java:369)
atorg.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
atorg.apache.tools.ant.Project.executeTarget(Project.java:1185)
atorg.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
atorg.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
atorg.apache.tools.ant.Project.executeTargets(Project.java:1068)
atorg.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
atorg.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
org.eclipse.ant.internal.ui.antsupport.AntSecurityException:org.eclipse.ant.internal.ui.antsupport.AntSecurityException
createCluster.py
#=======================================================================================
#ThisisanexampleofaWLSTofflineconfigurationscript.Thisexampledemonstrates
#howtocreateasingle-clusterdomain.ThissampleisbasedontheBasicWebLogic
#ServerDomaintemplate.
#
#Pleasenotethatmanyvaluesusedinthisscriptaresubjecttochangebased
#onyourWebLogicinstallationandthetemplateyouareusing.
#
#Usage:
#wlstcreatecluster.py<domainname>
#
#=======================================================================================
importstring
#=======================================================================================
#Openadomaintemplate.
#=======================================================================================
template=wlsHome+'/common/templates/domains/'+domainTemplate
readTemplate(template)
#=======================================================================================
#ConfiguretheAdministrationServerandSSLport.
#=======================================================================================
cd('Servers/AdminServer')
set('ListenAddress','')
set('ListenPort',7001)
create('AdminServer','SSL')
cd('SSL/AdminServer')
set('Enabled','True')
set('ListenPort',7002)
#=======================================================================================
#Definethepasswordforuserweblogic.Youmustdefinethepasswordbeforeyou
#canwritethedomain.
#=======================================================================================
cd('/')
cd('Security/base_domain/User/weblogic')
cmo.setPassword('weblogic')
#=======================================================================================
#SetOptions:
#-CreateStartMenu:EnablecreationofStartMenushortcut.
#-ServerStartMode:Setmodetodevelopment.
#-JavaHome:SetshomedirectoryfortheJVMusedwhenstartingtheserver.
#-OverwriteDomain:Overwritesdomain,whensaving,ifoneexists.
#=======================================================================================
setOption('CreateStartMenu','false')
setOption('ServerStartMode','dev')
setOption('JavaHome',javaHome)
setOption('OverwriteDomain','true')
#=======================================================================================
#Writethedomainandclosethedomaintemplate.
#=======================================================================================
writeDomain(beaHome+'/user_projects/domains/'+domainName)
closeTemplate()
#=======================================================================================
#Reopenthedomain.
#=======================================================================================
readDomain(beaHome+'/user_projects/domains/'+domainName)
#=======================================================================================
#CreatethreeManagedServersandconfigurethem.
#
#Migratableservers,whichprovideforbothautomaticandmanualmigration
#attheserver-level,arecreatedautomaticallywhenyoucreatetheManagedServers.
#=======================================================================================
#受管服务器的列表,若需要修改修改服务数量,可以修改这个变量,注意不可以重名
mServers='ms1','ms2','ms3'
startPort=8001
formServerinmServers:
cd('/')
create(mServer,'Server')
cd('Server/'+mServer)
set('ListenPort',startPort)
startPort+=10
set('ListenAddress','localhost')
#=======================================================================================
#CreateandconfigureaclusterandassigntheManagedServerstothatcluster.
#=======================================================================================
clusterName='wlsCluster'
cd('/')
create(clusterName,'Cluster')
assign('Server',string.join(mServers,','),'Cluster',clusterName)
cd('Clusters/'+clusterName)
set('MulticastAddress','237.0.0.101')
set('MulticastPort',9200)
set('WeblogicPluginEnabled','true')
#=======================================================================================
#Writethedomainandclosethedomaintemplate.
#=======================================================================================
updateDomain()
closeDomain()
#=======================================================================================
#ExitWLST.
#=======================================================================================
exit()
|
|
|