【问题标题】:Weblogic Scripting Tool common modulesWeblogic Sc​​ripting Tool 常用模块
【发布时间】:2012-10-11 08:28:42
【问题描述】:

在使用 WLST 时,我遇到了几个问题。 我们的服务器仅使用 Solaris 或 Linux,因此请在回答时记住这一点。

1:我应该在哪里放置与内部 WLST 功能无关的 WLST 通用模块(选项解析、日志记录、输出......) 1.1:我自己写了一些,以说明 Oracle 提供的 Jython 2.1 中缺乏现有的。

2:如何包含使用 WLST 内部函数的模块,以便它们工作,并且不会丢失其信息(模块中的连接在返回主程序时不会保持连接)。

问候

【问题讨论】:

  • 你看this了吗?特别是“作为 Jython 模块的 WLST 命令”。
  • 我看过,我试过,我失败了。不过我会再试一次。但这仅涵盖第二季度
  • 我认为您编写的“新”模块是否使用现有的 WLST 函数并不重要。所需要做的就是将这些“新”py 文件放在 $WL_HOME/common/wlst 下,并在 WLST 启动期间导入它们。让我知道您在执行此操作时遇到了什么错误。
  • 当在我的新模块中使用 WLST 函数(例如连接)而不导入 WLST 时,会出现 NameError。该模块已正确加载,所以无论如何都要感谢:-)
  • 但是,在我自己编写的模块中导入 wlstModule 时,当我连接时,它不会将其传播到主流

标签: weblogic11g wlst


【解决方案1】:

对于#1,我可以通过将当前路径添加到 sys.path 来将库 .py 文件包含在与目标脚本相同的目录中。例如,如果我有一个文件 functions.py,我会使用以下代码:

import os, sys
sys.path.append(os.path.dirname(os.path.abspath(inspect.getsourcefile(lambda:(True)))))
import functions

我不确定添加到 sys.path 是否是 Pythonic 的做事方式,但它可以完成工作,而且 WLST 也很漂亮 "Wild West"

如果您无法使用嵌入 Python 2.1 的旧版 Weblogic,例如 10.x(可能还有 11g?),您会发现它没有很多现在标准的库,包括检查库。您必须使用sys.argv[0] 而不是os.path.abspath(inspect.getsourcefile(lambda:(True)))

【讨论】:

    【解决方案2】:

    对于#1,我按照 Ed Griebel 的方法附加到 sys.path。为了支持旧版本,我利用了 sys.argv[0] 变量。

    对于 #2,如果您在模块中执行“导入 wlstModule”,那么在主脚本中,我发现您需要绕过提供的内部 WLST 函数,而是使用 wlstModule 中的函数。只需在主脚本中添加相同的“import wlstModule”,然后更改所有调用以使用导入的 wlstModule。例如,在主脚本中使用“wlstModule.cd()”、“wlstModule.cmo()”和“wlstModule.set()”等调用,而不是“cd()”、“cmo()”和“放()”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多