I logged in as the admin user and enabled the User Registration. However when i logged out, I realise there seems to be no link/button for creating self registering. The login screen only shows "New User?" but it seems an exception is thrown on the console whenever I enable User Registration and attempt to try it out. Any pointers on what's going on? Find the exception stacktrace below.

Template processing error: "get(registrationUrl) failed on instance of org.keycloak.forms.UrlBean": freemarker.template.TemplateModelException: get(registrationUrl) failed on instance of org.keycloak.forms.UrlBean
    at freemarker.ext.beans.BeanModel.get(BeanModel.java:224) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Dot._getAsTemplateModel(Dot.java:76) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Expression.getStringValue(Expression.java:93) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.DollarVariable.accept(DollarVariable.java:76) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.IfBlock.accept(IfBlock.java:82) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:406) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.BodyInstruction.accept(BodyInstruction.java:93) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Macro$Context.runMacro(Macro.java:172) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:614) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.visit(Environment.java:221) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.core.Environment.process(Environment.java:199) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.template.Template.process(Template.java:259) [freemarker-2.3.19.jar:2.3.19]
    at org.keycloak.service.FormServiceImpl.processFmTemplate(FormServiceImpl.java:111) [keycloak-forms-1.0-alpha-1.jar:]
    at org.keycloak.service.FormServiceImpl.process(FormServiceImpl.java:99) [keycloak-forms-1.0-alpha-1.jar:]
    at org.keycloak.services.resources.flows.FormFlows.forwardToForm(FormFlows.java:143) [keycloak-services-1.0-alpha-1.jar:]
    at org.keycloak.services.resources.flows.FormFlows.forwardToForm(FormFlows.java:154) [keycloak-services-1.0-alpha-1.jar:]
    at org.keycloak.services.resources.flows.FormFlows.forwardToLogin(FormFlows.java:178) [keycloak-services-1.0-alpha-1.jar:]
    at org.keycloak.services.resources.TokenService.loginPage(TokenService.java:521) [keycloak-services-1.0-alpha-1.jar:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:280) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:234) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:140) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:103) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.6.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:87) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:36) [keycloak-services-1.0-alpha-1.jar:]
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:70)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:67) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:70) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:164) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:654) [undertow-core-1.0.0.Beta30.jar:1.0.0.Beta30]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
    at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.ext.beans.BeanModel.invokeThroughDescriptor(BeanModel.java:277) [freemarker-2.3.19.jar:2.3.19]
    at freemarker.ext.beans.BeanModel.get(BeanModel.java:184) [freemarker-2.3.19.jar:2.3.19]
    ... 78 more
Caused by: java.lang.IllegalArgumentException: No @Path annotated method for org.keycloak.services.resources.admin.AdminService.registerPage
    at org.jboss.resteasy.specimpl.ResteasyUriBuilder.path(ResteasyUriBuilder.java:394) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.keycloak.services.resources.flows.Urls.saasRegisterPage(Urls.java:152) [keycloak-services-1.0-alpha-1.jar:]
    at org.keycloak.forms.UrlBean.getRegistrationUrl(UrlBean.java:92) [keycloak-forms-1.0-alpha-1.jar:]
    ... 85 more

--
Edem Morny

====================
http://edemmorny.wordpress.com