Как получить входные кредиты, переданные клиенту службы JAX-WS с соответствующими наборами политики и привязки в Rational / WebSphere Tooling

StackOverflow https://stackoverflow.com/questions/3782090

Вопрос

Я специально использую разработчик WebSphere Integration V7, но я также мог использовать Rational Software Architect V 7.5.1 (как у меня обоих).

Контекст: Я пытаюсь создать клиент JAX-WS, чтобы позвонить в службу диспетчера человеческой задачи и руководителя бизнес-потока в WebSphere Process Server V7, которые выставляются через JAX-WS. По умолчанию они присоединяются наборы политики и привязки поставщика, которые указывают некоторые настройки WS-Security (так как они не определены в WSDL).

Я понял, как сделать его работать с помощью динамического веб-проекта. Я смог генерировать код клиента JAX-WS из WSDL. Я смог экспортировать наборы политики и поставщика и привязки клиентов с сервера процессов и импортируйте их в мое рабочее пространство. Я смог прикрепить набор политических и клиентских привязки к клиентской службе. Я смог настроить страницу и сервлет, чтобы вызвать мой веб-сервис (для тестирования клиента). И я смог настроить параметры безопасности в дескрипторах развертывания и файлах привязки / расширения WebSphere для его работы.

Это все замечательно, но на самом деле мы не хотим ухо с войной, просто чтобы раскрыть клиент веб-сервиса нашим другим приложениям, которые мы пишем. Мы хотим генерировать банку клиента веб-службы и упаковать его с другими приложениями.

Учитывая эту линию мысли, которую я смог выяснить, как использовать регулярный проект Java в моем IDE и генерировать клиент веб-сервиса в него. Я также смогли прикрепить набор политики и привязки клиента клиенту.

Моя проблема теперь, как я это призвать? Я создал динамический веб-проект со своей страницей и сервлетом, как и прежде, чтобы проверить мой клиент. Я настроил свой клиентский проект в качестве зависимости веб-библиотеки, поэтому он имеет доступ к клиентскому коду. Я даже могу настроить дескрипторы развертывания, как и прежде, чтобы заставить логин и авторезацию. Только проблема сейчас в том, что я не могу понять, как пройти учетные данные в мой веб-сервис сейчас, когда она находится в собственной «банке». Прежде чем у меня был доступ к меню для настройки токенератора и Callbackhandler. Теперь у меня нет доступа к этим меню, так как клиент не находится в динамическом веб-проекте. Итак, теперь у меня есть «отключение», и это, конечно, терпит неудачу при попытке запустить его на сервере.

Должен быть способ сделать это. Я должен иметь возможность генерировать банку клиента и пропустить его, что это нужно. Кто-нибудь столкнулся с этим раньше?

Это было полезно?

Решение

Ok. Я провел много времени, исследуя это, читая редкие книги и статьи reveloperWorks и стучать головой к моей клавиатуре, и я наконец-то получил где-то. Не так там, но почти. (Желаю, чтобы некоторые вещи IBM было легче найти ... но вы работаете с тем, что вам дают. И во всей справедливости, с тем, что я прочитал, имеет смысл и довольно мощный.)

Во всяком случае, вот трюк как рациональные, так и WebSphere Tooling: Вы должны сначала создать пустой проект Java. Это один из клавиш для создания портативного клиента веб-сервиса.

Так вот так далеко:

  1. Создайте пустой проект Java в вашем IDE. Я предпочитаю использовать перспективу Java EE в любом рациональном разработке приложений / архитектора программного обеспечения или разработчика WebSphere Integration.
  2. Импортируйте WSDL (S) и схему (ы) в другой пустой универсальный проект в вашей IDE, а не в недавно созданный проект Java.
  3. Щелкните правой кнопкой мыши на главном WSDL и выберите, чтобы создать клиент веб-сервиса.
  4. Еще один ключ здесь: Убедитесь, что в мастере, который появляется, что вы изменяете клиентский проект, чтобы быть проектом Java, который вы создали на шаге. По умолчанию мастер попытается нацелиться на новый или существующий динамический веб-проект, который не то, что вы хотите.
  5. Убедитесь, что вы выбираете JAX-WS в качестве реализации. Убедитесь, что вы хотите, чтобы клиент был «портативным» и убедитесь, что вы сообщите мастеру, чтобы включить WSDL в клиенте Java Project.
  6. В ожидании у вас есть все в порядке (и работает ваш локальный сервер), Rational / WebSphere Tooling теперь должен генерировать клиент Web Service Jax-WS в проект Java.

Замечательный! Здорово! Теперь у вас есть проект Java (AKA JAR), который вы можете использовать, чтобы сделать его портативным. Но как вы делаете IBM оснащены счастливыми и прикрепляете политику безопасности клиенту?

Хорошо сначала я узнал, что это действительно лучше, чтобы прикрепить политику безопасности в административной консоли WebSphere Application Server / Enterprise Service Service Server. Существует слишком много вещей, чтобы попытаться принять участие в том, чтобы принять решение вручную вручную, даже если IBM дает вам API, чтобы сделать это. Поверьте мне. Легче определить безопасность на сервере, а затем просто назначить его клиенту.

В любом случае .... Чтобы позволить клиенту быть видимым для консоли администратора для прикрепления наборов политики и привязки клиентов для безопасности JAX-WS, он должен быть на «уровне веб-сайта» (для отсутствия лучших сроков) в Заказ, чтобы увидеть банку в качестве веб-клиента. Это означает, что прикрепление банки в качестве j2ee Utility BAR к проекту уха не будет работать. Ухо не «веб-уровень», но является «уровнем приложения». Итак, чтобы сделать это, вам нужно связать проект Java с ухом в экране зависимостей модулей J2EE, но не в качестве нынешней банки. Вместо этого установите флажок, который говорит «lib». Это означает, что он может быть виден / установлен в каталог lib динамического веб-проекта / войны (который вы также должны сделать). Удивительно, что консоль администратора теперь увидит вашу клиентскую банку как настоящий клиент веб-службы JAX-WS! И теперь вы можете связать наборы политики и привязки клиентов к нему, чтобы удовлетворить ваши потребности в безопасности!

Это может появиться странно, но это делает вид смысла. Ведь вы имеете дело с веб сервис, и вы используете Веб-протоколы, Так что в некоторых способах имеет смысл разместить клиента в "веб-уровень«Вашего приложения.

РЕДАКТИРОВАТЬ: Я запутался с политиками безопасности, и я обнаружил, что Этот разработчик работает статья помог мне больше всего. Обратите особое внимание на Листинг 2 ClientTest.java.. Отказ К сожалению, вам приходится кодировать всю безопасность к вашему клиенту, чтобы получить его на работу самым чистым. А потом вот еще один готов. IBM позволит вам создать токены имени пользователя из клиента, который проходит за пределами WebSphere, но они не позволят вам создавать токены LTPA за пределами WebSphere. Поэтому для проверки тех видов токенов вы должны упаковать и развернуть ваш клиент локально, чтобы проверить все это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top