【问题标题】:Why does Python (WLST) tell me a documented function doesn't exist?为什么 Python (WLST) 告诉我文档中的函数不存在?
【发布时间】:2011-08-25 03:24:57
【问题描述】:

我正在使用 Weblogic Sc​​ripting Tool aka WLST(一种基于 Python 的 shell 环境)以编程方式编辑 Plan.xml 文件中的变量,以便将项目部署到 Weblogic 服务器。我可以获取WLSTPlan Object 的实例,并且可以运行 getVariables 和其他方法来检查它是否已填充并查看其内容。但是,当我尝试调用 setVariable 方法时,我得到了一个 AttributeError,据我所知,这意味着该方法不存在:

wls:/UoADevDomain/serverConfig> plan.setVariable("foo", "bar")
Traceback (innermost last):
  File "<console>", line 1, in ?
AttributeError: setVariable

正如上面链接的文档(我检查过的版本是正确的)所示,这种方法肯定应该存在,并且同一个文档中列出的其他方法也可以工作。我不确定这是 Weblogic 的问题还是我对 Python 的理解的问题,但无论哪种方式都超出了我的范围。我尝试使用 dir() 函数列出计划对象的属性,但它返回一个空集,所以我猜这个技巧在这个环境中不起作用。

谁能建议如何诊断这个问题,或者最好还是修复它?

【问题讨论】:

  • 你可以试试plan.showVariables()
  • 是的。进一步调查表明,所有在模型中创建、删除或读取数据的方法都可以正常工作,但所有更新现有数据的方法(基本上是 plan.set*)都声称不存在。

标签: python weblogic wlst


【解决方案1】:

使用 javap 并在 WLSTPlan bean 上查找设置器仅显示以下设置器

void setVariableValue(java.lang.String, java.lang.String);

可能是文档中的错字。你能改用“setVariableValue”吗?

【讨论】:

  • 谢谢,这似乎有效。很奇怪,这里的文档如此错误——类文档列出了一大堆不同的设置器,而不是这个,但这是唯一一个有效的。谢谢!
  • 查看 WLS 10.3 文档,文档似乎已更正 - download.oracle.com/docs/cd/E21764_01/web.1111/e13715/…
【解决方案2】:

文档不太清楚,但从字里行间看,setVariable 似乎是您在 VariableBean 上调用的方法。

我会尝试使用以下内容:

plan.createVariable("foo").setVariable("foo", "bar");

(虽然没有测试过代码)

【讨论】:

  • 我不确定是什么给了你这个想法,文档列表 setVariable 作为 WLSTPlan 的一种方法。 VariableBean 没有这种方法,尽管我还没有找到任何关于它确实有哪些方法的文档(感谢 BEA/Oracle)。
猜你喜欢
  • 2021-01-22
  • 2022-06-16
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多