在WLSTInterpreter中使用displayLogs()NameError:displayLogs

时间:2015-01-23 18:16:03

标签: java weblogic wlst

我试图从displayLogs()命令获取日志输出,我试图在WLST Interpreter中执行此操作。我得到以下错误,这是“NameError:displayLogs”我能够执行其他命令,如domainRuntime()和许多其他命令,但这个似乎是在境界之外。在运行它时,是否需要在类路径中使用某种类运行它?任何帮助将不胜感激。

我在下面使用的源代码:

package wlst;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
import org.python.core.PyObject;

public class EmbeddedWLST
{
  static InteractiveInterpreter interpreter = null;
  EmbeddedWLST() {
    interpreter = new WLSTInterpreter();
  }

private static void connect() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("connect('USERNAME','PASSWORD','t3://HOSTANAME:PORT')");
    interpreter.exec(buffer.toString());
}

public static void main(String[] args) {
    new EmbeddedWLST();
    connect();
    PyObject cmo = interpreter.get("cmo");
    String command = getLogs();
    System.out.println("Executing Get Logs");
    interpreter.exec(command);
    System.out.println("Getting Output Object");
    PyObject output = interpreter.get("output");
    System.out.println(output.getClass());
    System.out.println(output);
  }

    private static String getLogs() {
        StringBuffer buf = new StringBuffer();
        buf.append( "output = displayLogs(returnData=1)\n" );
        return buf.toString();
    }
}

1 个答案:

答案 0 :(得分:1)

更新


您正在寻找的一切都存在于:

<install dir>/oracle_common/common/wlst

一个简单的grep -R displayLogs *返回了你需要的python模块:

<install dir>/oracle_common/common/wlst/oracle-logging.py

您需要在类路径中包含脚本所需的jar,特别是在ojdl.jar下找到的日志jar <install dir>/oracle_common/modules/oracle.odl

通过比较以下脚本(我使用的是10.3.6)找到了上述信息:


此脚本<install dir>/wlserver_10.3/common/bin/wlst.sh失败并显示:

wls:/offline> listLogs()
Traceback (innermost last):
  File "<console>", line 1, in ?
NameError: listLogs

此脚本<install dir>/oracle_common/common/bin/wlst.sh成功(并且有比上述脚本更多的选项):

wls:/offline> listLogs()
Not connected to a Weblogic server. Connect to a Weblogic server first.

确保您拥有与第二个脚本相同的jar和属性集。