Я хочу создать автономный клиент ExactTarget SOAP с использованием CXF.
Мне удалось создать клиент с помощью Glassfish Metro, но из соображений поддержки в будущем мы хотели бы использовать CXF. Я нашел старый пример и связанный с ним проект, но он слишком стар, чтобы быть полезным.
В настоящее время я пытаюсь понять, как установить обработчик для объекта-заглушки/порта и передать ему динамическое имя пользователя и пароль. Под динамическим я подразумеваю: приложение получает имя пользователя и пароль от пользователя во время работы. Вот код, который у меня сейчас есть для реализации Metro:
PartnerAPI service = new PartnerAPI();
Soap stub = service.getSoap();
Map<String, Object> outProperties = new HashMap<String, Object>();
Map ctx = ((BindingProvider) stub).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, user);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
List<Handler> chain = new ArrayList<Handler>();
chain.add(new SecurityHandler());
((BindingProvider) stub).getBinding().setHandlerChain(chain);
Я пытаюсь повторно использовать первые 4-6 строк для реализации CXF, но не могу использовать имеющиеся у меня обработчики, так как они зависят от com.sun.xml.wss.XWSSProcessor
.