Professional Documents
Culture Documents
More C
Writing a WLST script is an art of Administration. You will be using Python code, Jython scripting for building WebLogic platforms SO
Portals, WebCenter, FMW. WLST is a Weapon in the hands of Middleware Engineers, Most of the WLST automations makes life easy fo
WebLogic Administrator, Configuring, Monitoring JDBC, JMS, JVM, Threads made simple.
Home Basics Configurations JMS JDBC Monitoring Tricks & Tips Deploy SOA Other Features Multitenancy
T h u r s d a y, O c t o b e r 2 7 , 2 0 11
In Jython we have issubclass() to check superclass, subclass relation we can verify class relationship. You can find
parent-child relationship with it. As per my understanding the Error hierarchy can be defined in WLST(Jython) as
follows:
This WLST(Jython) Error tree I prepared and posted for your reference, so that you can make your script in perfect
manner, here you can find what is going wrong why it is happen while working out your script.
try:
# WLST code Block
# perform some tasks that may throw an exception
except ExceptionType, ExceptionVar:
# WLST code or
# perform some exception handling
finally:
# perform tasks that must always be completed (Will be performed before the exception is # raised.)
else:
# execute code that must always be invoked
While writing WLST scripts, there are some situations where you need ‘do nothing’ statement syntactically. That is
provided by the pass statement. When you start working on Exception handling this statement will be the first
experimenting statement for you.
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 1/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
In WLST raise is used to generate or invoke an exception condition. The syntax of this statement allows three comma
separated expressions which are optional. If no expression is present, WLST attempt to re-raise the last exception
that was raised. This raise statement we can use when we need exception handling with robust scripts. When you pass
the expressions to the raise statement, the first two expressions are evaluated to get the objects. These objects are
then used to determine the type and value of the exception. Omitted expressions are treated as None. The third
expression could be used for traceback objects.
wls:/offline> try:
... raise Exception('SituationalResponse')
...except Exception, e:
... print e
...
java.lang.Exception: SituationalResponse
SyntaxError
This you cannot be handled with the try-except block, because it will be thrown when your syntax is not in properly
arranged, that is in the statement missing indentation or improper arguments. SyntaxError could be raised when the
script lines are given for parsing, it will do token by token parsing wherever the improper syntax given WLST Shell
points with cap char under the token.
Now let us see the sample indentation issue that raises the Syntax Error.
wls:/offline>; try:
...connect('system','weblogic103','t3://adminhost:adminport')
Traceback (innermost last):
(no code object)
at line 0
File
"", line 2
connect('system','weblogic103','t3://adminhost:adminport')
^
SyntaxError: invalid syntax
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 2/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
This "Lexical error" got due to the copying from the webpage which has single quotes in different unicode value. When
I retype the single quotes it was resolved.
Here in the above sample after issuing try block starting we must use a tab or 4 spaces before connect() command.
When it found that is not
having proper indentation it raised the SyntaxError.
NameError
When the name used to do something like print or use in some other expression without assigning the value before it
was defined then WLST will raises NameError. When first time scripting most of the time user encounters this
unknowingly.
The following example might give you an idea how to resolve your issue.
wls:/offline> var1=100
wls:/offline> var3=var1+var2
Traceback (innermost last):
File "", line 1, in ?
You can handle this kind of error with our try-except block
The beauty of handling your Exception/Error more transparent and easy to understand with sys.exc_info() list.
KeyError
This error can be raised by the WLST while using the dictionary objects or map objects accessed with non-matching
key.
wls:/offline> urls['b']
Traceback (innermost last):
File
"", line 1, in ?
KeyError: b
ValueError
The ValueError is raised by the WLST shell when there is a inappropriate element is accessed in a list or a variable,
that is such as the value specified for searching in the list with index() method. Removing the element which is not
really exists in the list.
wls:/offline> L.index('web2')
Traceback (innermost last):
File
"<console>", line 1, in ?
ValueError: list.index(x): x not in list
I was working on thread and JVM monitoring script, encountered with the ValueError in different way. After storing
the ThreadPool values, JVM values into local variables I was using C type of formatting to display the data in a row of
Table. Some of the attribute values are Long integers, some of them plain integers some of them are strings.
cd('/ServerRuntimes/'+svr+'/JVMRuntime/'+svr)
freejvm = long(get('HeapFreeCurrent'))/(1024*1024)
totaljvm = long(get('HeapSizeCurrent'))/(1024*1024)
usedjvm = (totaljvm - freejvm)
When I ran with all numbered values with format as %5d it was shouted as follows:
Don't know what attribute requires which format ... Initially to resolve this display without any format for all
attributes values from the MBean.
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 3/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
print svr, thtot, thid, hog, sbth, cr, pr, ql, th, hs, totaljvm, freejvm, usedjvm
But still ValueError was exists, when I updated with formatter it was stuck with CompletedRequestCount that was not
integer type, it is actually Long integer type and that was causing the Error. So, changed the format for that attribute
it resolved one issue. Now the issue with different index number came... I have an idea that, if I found all the
attributes and their data types then it will be easy to fix the right format for each. I tried the following way
print type(thtot),type(thid), type(hog), type(sbth), type(cr), type(pr), type(ql), type(th),type(freejvm), type(totaljvm), type(usedjvm)
print '%14s %10s %5s %5s %5s %5s %8s %5s %5s %8s %5dMB %5dMB %5dMB' % (svr, hs, thtot, thid, hog, sbth, cr, pr, ql, th, totaljvm, freejvm, usedjv
So now you can take care of Values of variables for your WLST code before use them for any operation!!
AttributeError
You might be on MBean tree where there is no such attribute defined and you tried to access it then WLST Shell raises
AttributeError. Let us see an Example you can easily understand.
wls:/demodom/serverConfig> cmo.State()
Traceback (innermost last):
File "", line 1, in ?
AttributeError: State
IndexError
The IndexError will be raised by the WLST shell, when thelist object is accessed with a out of range index value.
when it is accessed with out of range index value say 7 then you get the IndexError.
wls:/offline> L[7]
Traceback (innermost last):
File
"<console>", line 1, in ?
IndexError: index out of range: 7
TypeError
The basic python object types int, str assignments or expressions or print statements with
concatenation does not allows you, raises the TypeError.
Thanks for reading this post, Give your feedback in comments. cheers!!
Good References:
1. http://www.doughellmann.com/articles/how-tos/python-exception-handling/
2. http://www.jython.org/jythonbook/en/1.0/ExceptionHandlingDebug.html
3. http://www.tutorialspoint.com/python/python_strings.htm
Labels: Errors, Exceptions, IndexError, KeyError, NameError, SyntaxError, ValueError, WebLogic 10, WebLogic 10.3.1, WebLogic 10.3.3,
WebLogic 11g, WebLogic 9.2, WLST Error, WLST Exception, WLST Python Error
9 comments:
Hi, I am getting Name Error when I run the following script. Could you please help on how to fix this. I have just pasted
half the script here. If you want the full script please let me know.
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 4/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
This is the error I get when I run the script:
=================================
java weblogic.WLST testdeploy.py -n true -u weblogic -p password123 -a localhost -m ShoppingCart.war -c deploy -d
/home/oracle/fmw/ -t AdminServer
usage:
java weblogic.WLST testdeploy.py [-n] -u user -p password -a url -m moduleName -c command -d sourcedir -t targets
Problem invoking WLST - Traceback (innermost last):
File "/home/oracle/fmw/Atradius/testdeploy.py", line 30, in ?
NameError: opts
================================
========AutoDeploy.ps====================
import getopt
import sys
import os
from java.lang import System
def usage():
print 'usage:'
print 'java weblogic.WLST testdeploy.py [-n] -u user -p password -a url -m moduleName -c command -d sourcedir -t
targets'
#print "java weblogic.WLST app_ctl.py [-n] -u user -p password -a url -m moduleName -c command -d sourcedir -t targets
-s stagemode"
try:
opts, args = getopt.getopt(sys.argv[1:], "nu:p:a:m:c:d:t:", ["user=", "password=", "url=","moduleName=", "command=",
"soucedir", "targets"])
#opts, args = getopt.getopt(sys.argv[1:], "nu:p:a:m:c:d:t:s:", ["user=", "password=", "url=","moduleName=", "command=",
"soucedir", "targets", "stagemode"])
except getopt.GetoptError, err:
print str(err)
#sys.exit(2)
usage()
reallyDoIt = true
user=None
password=None
url=None
moduleName=None
command=None
sourcedir=None
targets=None
#stagemode=None
=======================================
Reply
Replies
@Ajay, looking into your script I suggest two things please check the indentation that is mandatory for the
Python scripting. other one is use your options with getopt module which you get it from the command lie
arguments.
Reply
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 5/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
halfaus December 21, 2015 at 12:53 PM
An "else:" statement applies to the "except:", so it only runs if there is not an exception. So in your first code sample the
below comment is incorrect.
"else:
# execute code that must always be invoked"
Reply
If you need your ex-girlfriend or ex-boyfriend to come crawling back to you on their knees (even if they're dating
somebody else now) you must watch this video
right away...
Reply
Reply
Great and useful article. Creating content regularly is very tough.Thanks you. argumentative thesis statement examples
Reply
Reply
Thank you for this post. This is very interesting information for me. Who can do my homework essay ?
Reply
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
iphongthuynet
Reply
Add comment
Popular Posts
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 6/7
10/19/2019 WLST by Examples: WLST Errors and Exceptions
JDBC Monitoring
JDBC Monitoring with LWLST script One fine morning we (WLA support Team) got an assignment, The summary of
the assignment was to find &q...
WebLogic Training
https://wlstbyexamples.blogspot.com/2010/01/wlst-errors-and-exceptions.html 7/7