com.ibm.ws.scripting.adminCommand.AdminTask在世界的哪个地方?

时间:2012-03-06 05:42:09

标签: java websphere jython wsadmin

对于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的实例。我很容易找到包含这个类的jar,一切都很好。

但是AdminTask是com.ibm.ws.scripting.adminCommand.AdminTask的一个实例。尽管在运行时存在,但这个类在我的类路径中的任何地方都不存在,或者确实存在于计算机硬盘上的任何地方。

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

在我resort to reflection之前,有人可以解释com.ibm.ws.scripting.adminCommand.AdminTask可能存在的位置以及如何提取类文件的副本吗?

1 个答案:

答案 0 :(得分:1)

AdminConfigClient类不是API / SPI,因此依靠该类创建脆弱的基础结构。 API / SPI入口点为ConfigServiceFactory

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