Разочарованный проклятым ужасным API, предоставляемым сервером WebSphere Admin Server, я пишу свою собственную оболочку DSL Java. Мои Jython файлы теперь просто читать:Где в мире com.ibm.ws.scripting.adminCommand.AdminTask?
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
. Я легко нашел банку, которая содержит этот класс, и все хорошо.
Но 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 первая найдена, а последняя - нет. (Https://www.ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/entry/revive_finding_a_java_class_in_your_servlet_container2) – dbreaux
Это может помочь вам найти: Я не уверен, что WAS и что путь к классам WASadmin классов идентичны или что они должны быть. В любом случае, когда у вас есть новый профиль WebSphere, и вы начинаете wsadmin.sh (или .bat), вы можете увидеть список используемых банками. Возможно, они могут помочь вам. – user967710
google сказал мне, что это не наш мир. – cn1h