2010-03-08 37 views
8

我们正在实施一个web服务作为组件的应用程序,并决定使用Glassfish 3.0嵌入式分发版来提供web服务。它的工作原理。我们需要一个到web服务的SSL(HTTPS)连接,但我们没有找到任何文档或提示如何通过嵌入式API以编程方式激活它。如何在Glassfish 3.0嵌入式API中激活SSL(HTTPS)?

因此,我们试图通过domain.xml来配置嵌入式Glassfish,这个监听器配置了SSL。端口可以​​访问,但只有没有SSL。嵌入的Glassfish似乎忽略了为端口激活SSL的配置。

有没有使用SSL配置嵌入式Glassfish的经验?

+0

与编程无关? – 2010-03-08 12:52:12

+0

似乎相当目标的stackoverflow;如果我们将它们发送到serverfault,他们是否真的会得到答案? – Will 2010-03-08 12:55:37

+0

这个问题是关于使用GlassFish的嵌入式API从** Java启动和操作GlassFish **。这是100%的编程相关。 – 2010-03-08 20:16:52

回答

3

好的, 对不起,我花了这么多时间来回答。

程序嵌入式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(); 

运行这段代码是simmlar执行:

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

但这种解决方案创建一个新的端口使用SSL。重新配置已经启动的端口将是一个不错的选择。