public void start() { try { // start store. ZWaveProductsStoreModel storeModel = new ZWaveProductsStoreModel(); storeModel.setContentDeliveryDriver( new WebSocketWrapper(new LevelDbContentDeliveryDriver("ZWaveProductsDb"), 23666)); storeModel .connect() .then( new Callback<Throwable>() { @Override public void on(Throwable throwable) { final ZWaveProductsStoreUniverse universe = storeModel.universe(0); ZWaveProductsStoreView baseView = universe.time(0); baseView .select("/") .then( new Callback<KObject[]>() { public void on(KObject[] kObjects) { if (kObjects == null || kObjects.length == 0) { ProductStore store = baseView.createProductStore(); baseView .setRoot(store) .then( new Callback<Throwable>() { public void on(Throwable throwable) { System.err.println("ProductStore Loading"); load(store); storeModel .save() .then( new Callback<Throwable>() { @Override public void on(Throwable throwable) { if (throwable != null) { throwable.printStackTrace(); } } }); } }); } else { System.err.println("ProductStore root found"); } } }); } }); // serves pictures server = Undertow.builder() .addHttpListener(currentPort, currentIp) .setHandler( Handlers.path() .addPrefixPath( "/", Handlers.resource( new ClassPathResourceManager( this.getClass().getClassLoader(), "static")))) .build(); server.start(); } catch (IOException e) { e.printStackTrace(); } }