Я бы определенно не рекомендовал передавать определения классов в виде вложений SOAP. Сетевой загрузчик классов мог бы иметь больше смысла, но он все еще не нужен в вашей ситуации.
Положите в клиенте то, что там есть - интерфейс. Подготовьте несколько типов экранов (т.е. определенных как классы) на клиенте и активируйте каждый из них в зависимости от одного значения, переданного сервером. Например, если передано AuthenticationType.CREDENTIALS
, выберите имя пользователя / пароль. Если Authentication.SMART_CARD
- перейти на смарт-карту.
Если вы хотите распространять приложение, а затем реализовывать различные экраны авторизации, используйте Java Web Start . Таким образом, всем клиентам будет гарантированно установлена последняя версия.
Узнав, что ваши требования накладывают некоторые ограничения, взгляните на эту статью о загрузчиках сетевых классов .