WSO2 ESB: файл JAR с обработчиком обратного вызова не загружается

Я пытаюсь настроить прокси-службу, которая скрывает безопасность серверной службы, следуя инструкции, найденной здесь. Для обработчика обратного вызова пароля я следую инструкциям, найденным здесь. Все довольно просто и понятно.

Я составил PWCBHandler Класс в файл JAR и поместите его в папку esbhome\repository\components\lib вместе со всеми файлами JAR из wss4j-1.6.15\lib.

Я не вижу предупреждений или ошибок во время запуска ESB. Однако, когда я тестирую прокси-сервис, я получаю следующую ошибку в журнале:

org.apache.axis2.AxisFault: Error in obtaining a token
    at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:76)
    at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
...
Caused by: org.apache.rampart.RampartException: Error in obtaining a token
    at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:779)
    at org.apache.rampart.util.RampartUtil.getIssuedToken(RampartUtil.java:675)
...
Caused by: org.apache.rampart.RampartException: Cannot load password callback class: PWCBHandler
    at org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:144)
    at org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:118)
    at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:723)
...
    ... 26 more
Caused by: java.lang.ClassNotFoundException: PWCBHandler
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    ... 26 more
Caused by: java.lang.ClassNotFoundException: PWCBHandler
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at org.apache.ws.security.util.Loader.loadClass(Loader.java:200)
    at org.apache.ws.security.util.Loader.loadClass(Loader.java:163)
    at org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:142)
    ... 28 more
[2014-06-16 15:56:23,103]  WARN - FaultHandler ERROR_CODE : 0
[2014-06-16 15:56:23,103]  WARN - FaultHandler ERROR_MESSAGE : Unexpected error during sending message out
[2014-06-16 15:56:23,103]  WARN - FaultHandler ERROR_DETAIL : org.apache.synapse.SynapseException: Unexpected error during sending message out
    at org.apache.synapse.core.axis2.Axis2Sender.handleException(Axis2Sender.java:170)
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:69)
...

Другими словами, ESB и Rampart знают о PWCBHandler класс, но он не может загрузить / получить к нему доступ.

На данный момент у меня нет идей, где искать дальше. Есть ли способ, где я могу проверить, какие файлы JAR были загружены во время запуска? Что может запретить загрузку PWCBHandler JAR?

Спасибо за ваш отзыв,

Оливье

1 ответ

Благодаря ответу Раджива я получил подтверждение, что класс не загружается.

Я заново создал файл JAR с добавленным в пакет классом, и после перезапуска сервера был создан пакет для JAR. Похоже, что пользовательские классы должны быть добавлены в пакет для Carbon, чтобы создать пакет из него.

Я знаю, я знаю, классы всегда должны быть добавлены в пакет, но я не герой Java и не хотел беспокоиться о каталогах и тому подобном.

Уроки выучены!:)

Другие вопросы по тегам