barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 9 апреля 2013 г.

WSO2 ESB: невнятная ошибка "ERROR - DefaultAppDeployer Error while installing bundle" при развертывании OSGI-бандла

Проблема:

При развертывании пользовательского OSGI-бандла на WSO2 ESB 4.5.1 валится совершенно ни о чем не говорящая ошибка:
ERROR - DefaultAppDeployer Error while installing bundle : file:///.../MyBundle.jar
Исходники класса DefaultAppDeployer подтвердили опасения: исключение-причина ошибки попросту теряется:

package org.wso2.carbon.application.deployer.handler;
...
public class DefaultAppDeployer implements AppDeploymentHandler {
...
private void installBundle(String bundlePath) {
...
try {
Bundle bundle = AppDeployerServiceComponent
.getBundleContext().installBundle(bundlePath);
bundle.start();
} catch (BundleException e) {
log.error("Error while installing bundle : " + bundlePath);
}
...
}
...
}
Решение 

Исправить DefaultAppDeployer, добавив в лог исключение-причину:
log.error("Error while installing bundle : " + bundlePath, e);
Как именно вносить правку - есть варианты:
  1. Декомпилировать класс из jar-ник в шине, поправить и скомпилировать обратно
  2. Собрать класс из исходников на сайте wso2. Этот вариант проблемнее - в WSO2 ESB 4.5.1 лежит версия jar-ника org.wso2.carbon.application.deployer 4.0.2, где взять её исходники, я не нашел. На сайте wso2 доступны только исходники версии 4.0.0-SNAPSHOT, если собрать  org.wso2.carbon.application.deployer из них, шина не будет стартовать, т.к. эта версия существенно отличается от 4.0.2 даже по составу классов.

Комментариев нет:

Отправить комментарий