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

本文介绍使用WebLogic Scripting Tool (WLST) 创建WebLogic Server集群的两种方法,并详细展示了通过Python脚本配置集群参数的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方法:

<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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值