【发布时间】:2012-03-23 14:58:27
【问题描述】:
对 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 可能住在哪里以及如何提取类文件的副本?
【问题讨论】:
-
非常有趣。我可以确认,使用测试 JSP 来定位 WAS 运行时类路径上的类,找到了前者,但没有找到后者。 (ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/…)
-
这可能有助于您搜索:我不确定 WAS 类路径和 WASadmin 的类路径是否相同或它们应该相同。无论如何,当您拥有一个全新的 WebSphere 配置文件并启动 wsadmin.sh(或 .bat)时,您可以看到它使用的 jar 列表。他们也许能帮助你。
-
google 告诉我,这不属于我们的世界。
标签: java websphere jython wsadmin