对 WebSphere Admin Server 提供的该死的糟糕 API 感到沮丧,我正在编写自己的 Java DSL 包装器。我的 jython 文件现在只需阅读:
from my.package import MyDSL
config = MyDSL(AdminConfig, AdminTask)
config.goGoGadgetSkates() # or something like that
关键部分是我通过 (#%$$!@#) 上帝对象 AdminConfig
和 AdminTask
发送,以便 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
的一个实例。尽管在运行时存在,但此类不存在于我的类路径中的任何位置,甚至不存在于我的计算机硬盘驱动器上的任何位置。
我只能假设 com.ibm.ws.scripting.adminCommand.AdminTask
是由 WSAdmin 在 jython 层中神奇地构建的。也许它被定义为一个 python 类?
在我之前resort to reflection ,有人可以解释一下 com.ibm.ws.scripting.adminCommand.AdminTask
可能存在的位置以及我如何提取类文件的副本吗?
最佳答案
AdminConfigClient 类不是 API/SPI,因此您依赖该类创建了一个脆弱的基础结构。 API/SPI 入口点是 ConfigServiceFactory .
AdminTask 对象由 CommandMgr 中的数据支持.应该可以使用 CommandMgr 来做您可以用 AdminTask 做的任何事情。
关于java - com.ibm.ws.scripting.adminCommand.AdminTask 到底在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578490/