【问题标题】:How to get the correct error message in websphere wsadmin jython?如何在 websphere wsadmin jython 中获取正确的错误消息?
【发布时间】:2014-01-01 12:50:52
【问题描述】:

我需要可以处理异常并继续该过程的代码。但错误处理例程似乎无法获得正确的错误消息:

没有异常处理:

wsadmin>AdminControl.testConnection (SomeDataSource)

WAS7015E: Exception Running command: "AdminControl.testConnection (SomeDataSource)"
com.ibm.websphere.management.exception.AdminException
javax.management.MBeanException
java.lang.ClassNotFoundException: java.lang.ClassNotFoundException: DSRA8000E: Java archive (JAR) or compressed files do not exist in the path or the required access is not allowed.  Path: /ojdbc6.jar

带有异常处理:

wsadmin>try:
wsadmin>  AdminControl.testConnection (SomeDataSource)
wsadmin>except:
wsadmin>  typ,val,tb = sys.exc_info()
wsadmin>  print typ
wsadmin>  print val
wsadmin>  print tb

com.ibm.ws.scripting.ScriptingException
com.ibm.ws.scripting.ScriptingException: com.ibm.websphere.management.exception.AdminException: javax.management.MBeanException: Exception thrown in RequiredModelMBean while trying to invoke operation testConnection
<traceback object at -1765990050>

另一个版本(虽然我相信应该有更聪明的方式来执行它)

wsadmin>fname='${Server log folder}\SystemOut.log'
wsadmin>file=open(fname,'r')
wsadmin>junk=file.readlines()
wsadmin>file.seek(-1,1)
wsadmin>try:
wsadmin>  AdminControl.testConnection (SomeDataSource)
wsadmin>except:
wsadmin>  err='yes'
wsadmin>
wsadmin>file.seek(1,1)
wsadmin>if err='yes':
wsadmin>  msg=file.readlines()
wsadmin>  print 'Error: '.join(msg)

似乎我终于得到了我想要的东西,虽然通过跳过整个错误处理但直接获取错误日志的内容真的很难看。

【问题讨论】:

    标签: exception-handling jython wsadmin


    【解决方案1】:

    我不知道为什么在 wsadmin jython 中会发生这种情况,但你可以试试这个:

        try:
         SomeDataSource = "Test"
         AdminControl.testConnection (SomeDataSource)
        except:
         typ,val,tb = sys.exc_info()[1]
         print typ
         print val
         print tb
    

    有结果:

        wsadmin>try:
        wsadmin> SomeDataSource = "Test"
        wsadmin> AdminControl.testConnection (SomeDataSource)
        wsadmin>except:
        wsadmin> typ,val,tb = sys.exc_info()[1]
        wsadmin> print typ
        wsadmin> print val
        wsadmin> print tb
        wsadmin>
        WASX7015E: Exception running command: ""; exception information:
         com.ibm.ws.scripting.ScriptingException: AdminControl service not available
    

    注意 sys.exc_info()[1]

    问候

    【讨论】:

    • 我不得不说这很令人惊讶,你解决了我的问题,[1] 很重要,尽管你甚至没有启动 websphere 服务器。这使 AdminControl 服务不可用....不是我可以提取正确的错误消息
    • 很高兴它帮助了你:)。哈哈哈是的,服务器正在运行,但是通过错误。我在这里发帖后才注意到=/。我曾经遇到过这个问题,因为这个问题找到了解决方法!
    • 似乎并非如此。进一步的测试表明它只是错误处理例程中的一个错误.....:[
    猜你喜欢
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2020-12-21
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多