weblogic中两种不同的运行wlst脚本的方式

第一种方法:

< java classname ="weblogic.WLST" fork ="false" failOnError ="true" >
< classpath refid ="wls.classpath" />
< arg line ="wlst/createCluster.pymydomain" />
</ java >

成功执行

第二种方法

< taskdef name ="wlst"
classname
="weblogic.ant.taskdefs.management.WLSTTask"
classpathref
="wls.classpath" />

< wlst fileName ="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 " ,line 127 ,in ?
File
" <iostream> " ,line 46 ,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>
#
#
=======================================================================================
import string

# =======================================================================================
#
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
for mServer in mServers:
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()

你可能感兴趣的:(java,weblogic,python,ant,脚本)