Как активировать SSL (HTTPS) во встроенном API Glassfish 3.0?

Мы реализуем приложение с веб-сервисом в качестве компонента и решили использовать встроенный дистрибутив Glassfish 3.0 для предоставления веб-сервиса. И это работает.

Нам нужно подключение SSL (HTTPS) к веб-сервису, но мы не нашли никакой документации или подсказки, как активировать его программно через встроенный API.

Таким образом, мы попытались настроить встроенный Glassfish через domain.xml, для которого настроен прослушиватель с SSL. И порт доступен, но только без SSL. Встроенная Glassfish, похоже, игнорирует конфигурацию для активации SSL для порта.

Есть ли у кого-нибудь опыт настройки встроенного Glassfish с SSL?


person Crazy Doc    schedule 08.03.2010    source источник
comment
Кажется, он подходит для stackoverflow; если мы отправим их на serverfault, они действительно получат ответ?   -  person Will    schedule 08.03.2010
comment
Этот вопрос касается запуска и управления GlassFish из Java с использованием встроенного API GlassFish. Это на 100% связано с программированием.   -  person Pascal Thivent    schedule 08.03.2010
comment
Действительно интересный вопрос. Я считаю, что это должно быть возможно, но пока я не нашел никаких ресурсов. Я покопаюсь в API на этих выходных, если у меня будет время.   -  person Pascal Thivent    schedule 13.03.2010
comment
Сегодня коллега нашел решение. Я опубликую это, если он объяснит мне это.   -  person Crazy Doc    schedule 16.03.2010


Ответы (1)


Хорошо, извините, что мой ответ занял так много времени.

Программный встроенный API, по-видимому, не позволяет выполнить эту задачу. За исключением запуска команды asadmin:

logger.debug("Configure port for SSL");
        String command = "create-http-listener";
        ParameterMap params = new ParameterMap();
        params.add("listeneraddress", "0.0.0.0");
        params.add("listenerport", "443");
        params.add("defaultvs", "server");
        params.add("securityenabled", "true");
        params.add("enabled", "true");
        params.add("DEFAULT", "http-listener2");
        CommandRunner runner = server.getHabitat().getComponent(CommandRunner.class);
        ActionReport report = server.getHabitat().getComponent(ActionReport.class);
        runner.getCommandInvocation(command, report).parameters(params).execute();

Запуск этого кода аналогичен выполнению:

asadmin create-http-listener --listeneraddress 0.0.0.0 --listenerport 443 --defaultvs server securityenabled=true --enabled=true http-listener2

Но это решение создает новый порт с SSL. Неплохим вариантом будет перенастроить уже запущенный порт.

person Crazy Doc    schedule 31.03.2010