MovingBlocks / FacadeServer

A headless facade that acts as a game host and provides web-based administration. Automation category: Terasology Facade. See https://forum.terasology.org/threads/facadeserver-headless-server-with-web-interface.1906
Apache License 2.0
4 stars 11 forks source link

Three NullPointerException's #31

Open ouwe-knutselaar opened 4 years ago

ouwe-knutselaar commented 4 years ago

L.S.

I try to startup a Facade server as described in https://github.com/MovingBlocks/FacadeServer/blob/develop/README.md.

First I noticed one thing, the description talkes about './gradlew facades:Server:run' but the Facade server can only be started with './gradlew facades:FacadeServer:run'. I don;t know if this is a type or if I do something wrong.

But after the start I get three NullPointerExceptions and only port 8080 is opened but accessing this port with a browser results in a 404. Do you know what is going wrong?

These are the errors:

2020-05-22T20:38:50.028+0200 [QUIET] [system.out] 20:38:50.028 [main] INFO  o.terasology.engine.TerasologyEngine - Initialization completed in 1.66sec.
2020-05-22T20:38:50.395+0200 [QUIET] [system.out] 20:38:50.395 [main] ERROR o.t.engine.ComponentSystemManager - Failed to initialise system org.terasology.input.InputSystem@323efafe
2020-05-22T20:38:50.396+0200 [QUIET] [system.out] java.lang.NullPointerException: null
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.input.InputSystem.initialise(InputSystem.java:124)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.ComponentSystemManager.initialiseSystem(ComponentSystemManager.java:161)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.ComponentSystemManager.initialise(ComponentSystemManager.java:145)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.subsystem.headless.mode.StateHeadlessSetup.init(StateHeadlessSetup.java:104)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.switchState(TerasologyEngine.java:550)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.changeState(TerasologyEngine.java:533)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:399)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.web.EngineRunner.runEngine(EngineRunner.java:66)
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.web.ServerMain.main(ServerMain.java:124)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out] 20:38:50.398 [main] WARN  o.t.e.s.h.mode.StateHeadlessSetup - ModuleRegistry has no latest version for module coresamplegameplay
2020-05-22T20:38:50.397+0200 [QUIET] [system.out] 20:38:50.398 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception, attempting clean game shutdown
2020-05-22T20:38:50.397+0200 [QUIET] [system.out] java.lang.NullPointerException: null
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.module.StandardModuleExtension.getBooleanExtension(StandardModuleExtension.java:74)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.module.StandardModuleExtension.isGameplayModule(StandardModuleExtension.java:65)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.subsystem.headless.mode.StateHeadlessSetup.createGameManifest(StateHeadlessSetup.java:145)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.subsystem.headless.mode.StateHeadlessSetup.init(StateHeadlessSetup.java:111)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.switchState(TerasologyEngine.java:550)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.changeState(TerasologyEngine.java:533)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:399)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.web.EngineRunner.runEngine(EngineRunner.java:66)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out]       at org.terasology.web.ServerMain.main(ServerMain.java:124)
2020-05-22T20:38:50.397+0200 [QUIET] [system.out] 20:38:50.398 [main] INFO  o.terasology.engine.TerasologyEngine - Shutting down Terasology...
2020-05-22T20:38:50.467+0200 [ERROR] [system.err] Exception in thread "main" java.lang.NullPointerException
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.module.StandardModuleExtension.getBooleanExtension(StandardModuleExtension.java:74)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.module.StandardModuleExtension.isGameplayModule(StandardModuleExtension.java:65)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.subsystem.headless.mode.StateHeadlessSetup.createGameManifest(StateHeadlessSetup.java:145)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.subsystem.headless.mode.StateHeadlessSetup.init(StateHeadlessSetup.java:111)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.TerasologyEngine.switchState(TerasologyEngine.java:550)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.TerasologyEngine.changeState(TerasologyEngine.java:533)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:399)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.web.EngineRunner.runEngine(EngineRunner.java:66)
2020-05-22T20:38:50.467+0200 [ERROR] [system.err]       at org.terasology.web.ServerMain.main(ServerMain.java:124)
2020-05-22T20:38:50.899+0200 [LIFECYCLE] [org.gradle.cache.internal.DefaultFileLockManager]
skaldarnar commented 4 years ago

Hi @z710x40 - thanks for the report 🙃

[...] the description talkes about ./gradlew facades:Server:run but the Facade server can only be started with ./gradlew facades:FacadeServer:run

This is definitely a mistake in the documentation, easy to fix =) thanks for pointing this out.

2020-05-22T20:38:50.395+0200 [QUIET] [system.out] 20:38:50.395 [main] ERROR o.t.engine.ComponentSystemManager - Failed to initialise system org.terasology.input.InputSystem@323efafe
2020-05-22T20:38:50.396+0200 [QUIET] [system.out] java.lang.NullPointerException: null
2020-05-22T20:38:50.396+0200 [QUIET] [system.out]       at org.terasology.input.InputSystem.initialise(InputSystem.java:124)

I have no clue what this might be about 🧐 would need some further investigation to track down the NPE. Probably some classes have been renamed or moved to modules/out of the engine in the meantime.

[main] WARN o.t.e.s.h.mode.StateHeadlessSetup - ModuleRegistry has no latest version for module coresamplegameplay

Terasology/CoreSampleGameplay got moved out of the engine repo and is it's own module now. Again, not sure what to fix here.

at org.terasology.engine.module.StandardModuleExtension.isGameplayModule

This is related to loading the module.txt and parsing the categories (isGameplay, isLibrary, ...). I would assume that these errors come from the underlying issue that the module is missing....

ouwe-knutselaar commented 4 years ago

So basically, this version is broken for now.

skaldarnar commented 4 years ago

Yep, that was probably a very good tl;dr of what I wrote above 🙈

I hope the analysis above gives enough clues for anybody who wants to get their hands on fixing these errors.