Я пытаюсь настроить прокси-сервис, который скрывает безопасность серверной службы, следуя найденному руководству здесь. Для обработчика обратного вызова пароля я следую инструкциям, найденным здесь. Все довольно просто и просто.
Я скомпилировал класс 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?
Спасибо за ваш отзыв,
Оливье
ss
показала, что файл JAR действительно не загружался. Без указания причины. Результат дал мне идею, не знаю почему. Я заметил все записи пакетаorg.x.y
, но этого я не делал. Итак, я добавил класс обратного вызова в «мой» пакет, перекомпилировал и переархилировал вещь, и теперь пакет указан с идентификатором 3. Поместите в мой список задач: копаться в равноденствии... Спасибо за подсказку! - person Olivier   schedule 18.06.2014