Hi,

I want to debug a problem related to security module but need to resolve
issues I've had to debug the simple way first, that is to run the
domainapp.webapp.DomainApplication class in the webapp project inside a
serverlet container. I've debugged by connecting to a running process in
the past, but that is a pain.

At startup I get an error that I don't see normally using mvn jetty:run,
which is a datanucleus validation issue.

The first error is
Caused by:
org.datanucleus.store.rdbms.exceptions.NoTableManagedException: Persistent
class "au.com.scds.chats.dom.module.general.names.ClassificationValue" has
no table in the database, but the operation requires it. Please check the
specification of the MetaData for this class.

This is an simple abstract class, it is not logical here to have a table
for it, rather I want a table for each of subclasses. I don't really want
to change anything as I know it does work, so I'm wondering what is
different about this method of launching that might cause this error?

@PersistenceCapable(identityType = IdentityType.APPLICATION)
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public abstract class ClassificationValue  {

    public ClassificationValue(){}

    public ClassificationValue(String name){
        this.name = name;
    }

    private String name;

    @PrimaryKey
    @Column(allowsNull="false")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (obj == this) {
            return true;
        }
        if (!this.getClass().isInstance(obj)) {
            return false;
        }
        return ((ClassificationValue) obj).getName().equals(this.getName());
    }

    @Override
    public String toString() {
        return this.getClass().getSimpleName() + ":" + this.getName();
    }
}




The full stack-trace is as follows:

2015-12-05 17:56:23.003:WARN:oejw.WebAppContext:Failed startup of context
o.e.j.w.WebAppContext{/,file:/D:/temp/isis-chats/webapp/src/main/webapp/},D:\temp\isis-chats\webapp\src\main\webapp
javax.servlet.ServletException: com.google.inject.ProvisionException: Guice
provision errors:<|<|1) Error in custom provider,
org.datanucleus.store.rdbms.exceptions.NoTableManagedException: Persistent
class "au.com.scds.chats.dom.module.general.names.ClassificationValue" has
no table in the database, but the operation requires it. Please check the
specification of the MetaData for this class.<|  at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)<|
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)<|
while locating org.apache.isis.core.runtime.system.IsisSystem<|    for
field at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:151)<|
while locating domainapp.webapp.DomainApplication<|<|1 error
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:453)
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
    at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:118)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:768)
    at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
    at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
    at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
    at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:282)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedAdapter.start(JettyEmbeddedAdapter.java:67)
    at
net.sourceforge.eclipsejetty.starter.common.AbstractJettyLauncherMain.launch(AbstractJettyLauncherMain.java:84)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedLauncherMain.main(JettyEmbeddedLauncherMain.java:42)
Caused by:
com.google.inject.ProvisionException: Guice provision errors:<|<|1) Error
in custom provider,
org.datanucleus.store.rdbms.exceptions.NoTableManagedException: Persistent
class "au.com.scds.chats.dom.module.general.names.ClassificationValue" has
no table in the database, but the operation requires it. Please check the
specification of the MetaData for this class.<|  at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)<|
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)<|
while locating org.apache.isis.core.runtime.system.IsisSystem<|    for
field at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:151)<|
while locating domainapp.webapp.DomainApplication<|<|1 error
    at
com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451)
    at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65)
    at
com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
    at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
    at domainapp.webapp.DomainApplication.init(DomainApplication.java:64)
    at org.apache.wicket.Application.initApplication(Application.java:823)
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
    at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:118)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:768)
    at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
    at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
    at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
    at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:282)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedAdapter.start(JettyEmbeddedAdapter.java:67)
    at
net.sourceforge.eclipsejetty.starter.common.AbstractJettyLauncherMain.launch(AbstractJettyLauncherMain.java:84)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedLauncherMain.main(JettyEmbeddedLauncherMain.java:42)
Caused by:
org.datanucleus.store.rdbms.exceptions.NoTableManagedException: Persistent
class "au.com.scds.chats.dom.module.general.names.ClassificationValue" has
no table in the database, but the operation requires it. Please check the
specification of the MetaData for this class.
    at
org.datanucleus.store.rdbms.RDBMSStoreManager.getDatastoreClass(RDBMSStoreManager.java:698)
    at
org.datanucleus.store.rdbms.table.ClassTable.initializePK(ClassTable.java:1003)
    at
org.datanucleus.store.rdbms.table.ClassTable.preInitialize(ClassTable.java:250)
    at
org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTable(RDBMSStoreManager.java:3194)
    at
org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2993)
    at
org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
    at
org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
    at
org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
    at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
    at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
    at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
    at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
    at
org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
    at
org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
    at
org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
    at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at
com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
    at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at
com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
    at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
    at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
    at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
    at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
    at
com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
    at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
    at
com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
    at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
    at domainapp.webapp.DomainApplication.init(DomainApplication.java:64)
    at org.apache.wicket.Application.initApplication(Application.java:823)
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
    at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
    at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:118)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:768)
    at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
    at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
    at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
    at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:282)
    at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedAdapter.start(JettyEmbeddedAdapter.java:67)
    at
net.sourceforge.eclipsejetty.starter.common.AbstractJettyLauncherMain.launch(AbstractJettyLauncherMain.java:84)
    at
net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedLauncherMain.main(JettyEmbeddedLauncherMain.java:42)
2015-12-05 17:56:23.071:INFO:oejs.AbstractConnector:Started
[email protected]:8080
-------------------------------------------------

Reply via email to