Где находится com.ibm.ws.scripting.adminCommand.AdminTask?

Разочарованный чертовски ужасным API, предоставляемым WebSphere Admin Server, я пишу свою собственную оболочку 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. Я легко нашел банку, содержащую этот класс, и все в порядке.

Но AdminTask — это экземпляр com.ibm.ws.scripting.adminCommand.AdminTask. Несмотря на то, что он присутствует во время выполнения, этот класс не существует нигде в моем пути к классам или где-либо на жестком диске моего компьютера.

Я могу только предположить, что com.ibm.ws.scripting.adminCommand.AdminTask волшебным образом создан WSAdmin на уровне jython. Возможно, он определен как класс Python?

Прежде чем я прибегну к отражению, может кто-нибудь пожалуйста, объясните, где может жить com.ibm.ws.scripting.adminCommand.AdminTask и как я могу извлечь копию файла класса?


person Synesso    schedule 06.03.2012    source источник
comment
Очень интересно. Я могу подтвердить, что с помощью тестового JSP для поиска классов в пути к классам среды выполнения WAS первый найден, а второй — нет. (ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/ )   -  person dbreaux    schedule 06.03.2012
comment
Это может помочь вам в поиске: я не уверен, что путь к классам WAS и путь к классам WASadmin идентичны или что они должны быть. В любом случае, когда у вас есть совершенно новый профиль WebSphere и вы запускаете wsadmin.sh (или .bat), вы можете увидеть список используемых им jar-файлов. Возможно, они смогут вам помочь.   -  person user967710    schedule 17.03.2012
comment
гугл сказал мне, что это не из нашего мира.   -  person cn1h    schedule 13.04.2012


Ответы (1)


Класс AdminConfigClient не является API/SPI, поэтому вы создаете хрупкую инфраструктуру, полагаясь на этот класс. Точка входа API/SPI: ConfigServiceFactory.

Объект AdminTask поддерживается данными в CommandMgr. Должна быть возможность использовать CommandMgr, чтобы делать все, что вы можете делать с AdminTask.

person Brett Kail    schedule 18.04.2012