4

对 WebSphere Admin Server 提供的糟糕的 API 感到沮丧,我正在编写自己的 Java DSL 包装器。我的 jython 文件现在只需阅读:

from my.package import MyDSL
config = MyDSL(AdminConfig, AdminTask)
config.goGoGadgetSkates() # or something like that

重要的部分是我通过 (#%$$!@#) 上帝对象发送AdminConfigAdminTask以便 DSL 可以使用它们在 WAS 中执行操作。

为了编译 DSL,我需要包含这两个对象的类文件。我通过首先将构造函数设置为:

public MyDSL(Object a, Object b) {
    System.out.println(a.getClass());
    System.out.println(b.getClass());
}

输出显示 AdminConfig 对象是com.ibm.ws.scripting.AdminConfigClient. 我很容易找到包含这个类的罐子,一切都很好。

但 AdminTask 是com.ibm.ws.scripting.adminCommand.AdminTask. 尽管在运行时存在,但这个类在我的类路径中的任何地方都不存在,甚至在我的计算机硬盘驱动器上的任何地方都不存在。

我只能假设com.ibm.ws.scripting.adminCommand.AdminTask是由 WSAdmin 在 jython 层中神奇地构建的。也许它被定义为一个python类?

在我诉诸反思之前,有人可以解释一下com.ibm.ws.scripting.adminCommand.AdminTask可能住在哪里以及如何提取类文件的副本吗?

4

1 回答 1

1

AdminConfigClient 类不是 API/SPI,因此您正在依赖该类创建一个脆弱的基础架构。API/SPI 入口点是ConfigServiceFactory

AdminTask 对象由CommandMgr中的数据支持。应该可以使用 CommandMgr 来执行您可以使用 AdminTask 执行的任何操作。

于 2012-04-18T16:39:43.283 回答