Register link results in exception on new install

I’ve installed XWiki on my home server. Everything seemed to go well, the initial flavor got created, the home page looks nice. But when I log out as admin and click “Register” to create a new user, I get a page with the following:

    HTTP ERROR 500

Problem accessing /xwiki/bin/register/XWiki/XWikiRegister. Reason:

    Server Error

Caused by:

java.lang.NoClassDefFoundError: Could not initialize class com.xpn.xwiki.web.RegisterAction
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:442)
	at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:172)
	at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:147)
	at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:281)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:206)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:134)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:564)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
	at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
	at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
	at java.lang.Thread.run(Thread.java:748)

Powered by Jetty:// 9.4.6.v20170531 

Any ideas? What can I check? What might I have missed?

Thank you in advance for any help!

Trying to reproduce now…

ok I’ve tested on a clean 9.5.1 and it’s working fine.

Seems you have some incorrect installation. Maybe you could tell us how you installed it or try to reinstall it?

Start with:
- Arch Linux
- Java8 installed
- Jetty installed
- PostgreSQL installed

  1. Download xwiki-9.5.1.war
  2. mkdir JETTY_HOME/webapps/xwiki
  3. cd JETTY_HOME/webapps/xwiki
  4. unzip xwiki-9.5.1.war
  5. Create db and user, add user grants per xwiki install directions for postgresql
  6. Comment hsqldb section and uncomment postgresql section in hibernate.cfg.xml
  7. Download postgresql-42.1.1.jar jdbc library and copy it to JETTY_HOME/webapps/xwiki/WEB-INF/lib
  8. mkdir JETTY_HOME/webapps/xwiki/persist
  9. Set environment.permanentDirectory to JETTY_HOME/webapps/xwiki/persist
  10. chown -R jetty.jetty JETTY_HOME/webapps/xwiki
  11. Start jetty
  12. Browse to http://host:8080/xwiki
  13. Follow Distribution Wizard prompts
  14. Get a nice looking home/dashboard
  15. Log out
  16. Open the drawer in the top right
  17. Click “Register”

That’s when that stuff shows up.

I’ve been through the installation twice. Could it be something in the Jetty installation? Where would I look to start troubleshooting?

I figured it out. I’m running this on a headless server, so there’s no X11 system installed. However, to generate some of the content, there’s an expectation of real X11 font files, since some of the AWT stuff relies on those. Their absence was causing a problem.

I just installed the type1 fonts (and all dependencies) and it seems to work.