Start-up fails after creating custom datatype.

I created a custom datatype by extending NuberDatatype as per Konstantin’s examples on Github.

I then used the datatype in two of my Entities and re-created the DB.

Now I cannot get the app to run, with the following error in the Tomcat terminal:


21:11:49.840 INFO  c.h.cuba.core.app.ConfigStorage - Loading DB-stored app properties cache
21:11:49.923 INFO  c.h.cuba.core.sys.MetadataImpl - Initializing metadata
21:11:50.014 ERROR eclipselink.ejb -
21:11:50.029 ERROR c.h.cuba.core.sys.AppContextLoader - Error initializing application
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: java.lang.IllegalStateException: Can not find a model for class com.haulmont.cuba.core.entity.BaseGenericIdEntity. The class's package must be inside of some model's root package.
        at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) ~[spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at com.haulmont.cuba.core.sys.TransactionImpl.<init>(TransactionImpl.java:58) ~&#91;cuba-core-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.core.sys.PersistenceImpl.createTransaction(PersistenceImpl.java:121) ~&#91;cuba-core-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.security.app.LoginWorkerBean.loginAnonymous(LoginWorkerBean.java:213) ~&#91;cuba-core-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.security.app.LoginWorkerBean.initializeAnonymousSession(LoginWorkerBean.java:502) ~&#91;cuba-core-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.security.app.LoginWorkerBean.applicationStarted(LoginWorkerBean.java:512) ~&#91;cuba-core-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.core.sys.AppContext.startContext(AppContext.java:234) ~&#91;cuba-global-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.core.sys.AppContext$Internals.startContext(AppContext.java:289) ~&#91;cuba-global-6.5.3.jar:6.5.3&#93;
        at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:76) ~&#91;cuba-global-6.5.3.jar:6.5.3&#93;
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107) &#91;catalina.jar:8.5.9&#93;
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841) &#91;catalina.jar:8.5.9&#93;
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) &#91;na:1.8.0_121&#93;
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) &#91;na:1.8.0_121&#93;
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) &#91;na:1.8.0_121&#93;
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) &#91;na:1.8.0_121&#93;
        at java.lang.Thread.run(Thread.java:745) &#91;na:1.8.0_121&#93;

Any ideas?

I resolved my problem by creating a new project and copying all the entities, services, screens etc. over from the faulty setup.

My suspicion is that I inadvertently broke one of the configuration files.