Merge pull request #3168 from stianst/master

KEYCLOAK-3462 Fix exception not displayed in init from KeycloakServer
This commit is contained in:
Stian Thorgersen 2016-08-30 09:47:31 +02:00 committed by GitHub
commit 5a4bb5f3f0
2 changed files with 11 additions and 1 deletions

View file

@ -70,6 +70,8 @@ public class KeycloakApplication extends Application {
private static final ServicesLogger logger = ServicesLogger.ROOT_LOGGER; private static final ServicesLogger logger = ServicesLogger.ROOT_LOGGER;
protected boolean embedded = false;
protected Set<Object> singletons = new HashSet<Object>(); protected Set<Object> singletons = new HashSet<Object>();
protected Set<Class<?>> classes = new HashSet<Class<?>>(); protected Set<Class<?>> classes = new HashSet<Class<?>>();
@ -78,6 +80,10 @@ public class KeycloakApplication extends Application {
public KeycloakApplication(@Context ServletContext context, @Context Dispatcher dispatcher) { public KeycloakApplication(@Context ServletContext context, @Context Dispatcher dispatcher) {
try { try {
if ("true".equals(context.getInitParameter("keycloak.embedded"))) {
embedded = true;
}
loadConfig(context); loadConfig(context);
this.contextPath = context.getContextPath(); this.contextPath = context.getContextPath();
@ -139,7 +145,9 @@ public class KeycloakApplication extends Application {
setupScheduledTasks(sessionFactory); setupScheduledTasks(sessionFactory);
} catch (Throwable t) { } catch (Throwable t) {
if (!embedded) {
exit(1); exit(1);
}
throw t; throw t;
} }
} }

View file

@ -309,6 +309,8 @@ public class KeycloakServer {
di.setDeploymentName("Keycloak"); di.setDeploymentName("Keycloak");
di.setDefaultEncoding("UTF-8"); di.setDefaultEncoding("UTF-8");
di.addInitParameter("keycloak.embedded", "true");
di.setDefaultServletConfig(new DefaultServletConfig(true)); di.setDefaultServletConfig(new DefaultServletConfig(true));
ServletInfo restEasyDispatcher = Servlets.servlet("Keycloak REST Interface", HttpServlet30Dispatcher.class); ServletInfo restEasyDispatcher = Servlets.servlet("Keycloak REST Interface", HttpServlet30Dispatcher.class);