Hi Dileepa, Hmm, I guess one workaround is to simply define a dummy entity.
Or, if you register the Isis settings service [1] (or the auditing service [2] or command service [3] or the background command service [4]), then you'll get one or seveal JDO entities this way. HTH Dan [1] http://isis.apache.org/components/objectstores/jdo/services/settings-services-jdo.html [2] http://isis.apache.org/components/objectstores/jdo/services/auditing-service-jdo.html [3] http://isis.apache.org/components/objectstores/jdo/services/command-service-jdo.html [4] http://isis.apache.org/components/objectstores/jdo/services/background-command-service-jdo.html On 25 May 2014 16:18, Dileepa Jayakody <[email protected]> wrote: > Hi Dan and All, > > Thanks a lot for pointing it out. I added @Programmatic to the method > exposing JSON Array and the previous error is now fixed.I'm getting a new > one now, this one's about the Isis meta-model. I haven't yet added any > persistence-capable entities to my domain model but following error points > out something related to that. Any advice is appreciated. > > > [exec] 19:23:25,776 [IsisWicketApplication Thread-3 ERROR] > ################################################ ISIS METAMODEL VALIDATION > ERRORS ################################################################ > [exec] 19:23:25,776 [IsisWicketApplication Thread-3 ERROR] > [exec] 19:23:25,776 [IsisWicketApplication Thread-3 ERROR] > DataNucleus object store: no @PersistenceCapable found. (Are the entities > referenced by the registered services? are all services registered? did the > DataNucleus enhancer run?) > [exec] 19:23:25,776 [IsisWicketApplication Thread-3 ERROR] > [exec] 19:23:25,776 [IsisWicketApplication Thread-3 ERROR] Please > inspect the above messages and correct your domain model. > > > Thanks, > Dileepa > > > On Fri, May 23, 2014 at 5:19 PM, Dan Haywood <[email protected] > > wrote: > >> Hi Dileepa, >> This is because one of your domain objects or services is exposing >> JSONArray to Isis's metamodel, and (as the error says) we don't support >> collections as parameters for methods (in this case put(int, Collection)) >> that it is attempting to interpret as an action. >> >> Looking at your code, it's probably EmailViewModel#getAddressObject() or >> similar. >> >> The solution is just to annotate this method as @Programmatic, basically >> this excludes it from the metamodel completely. >> >> ~~~ >> I also noticed that you've instantiated ContextIO directly in >> EmailService, with hardcoded password/key (I think you skyped me about this >> yesterday, but I was offline). >> >> Better would be to inject it in ContextIO. We only support setter >> injection, but you could then have ContextIO grab its settings from the >> ApplicationSettingsService that you'll find in Isis' applib. >> >> Thus: >> EmailService -> ContextIO -> ApplicationSettingsService. >> >> HTH >> Dan >> >> >> >> >> On 23 May 2014 12:35, Dileepa Jayakody <[email protected]> wrote: >> >>> Hi all, >>> >>> I have been working on my GSOC project : ReputationBox using >>> the simple_wicket_restful_jdo-archetype. >>> I have defined some of the domain classes for the application and setup >>> a mock EmailService and EmailViewModel to display email data on the web app. >>> The project code @github : >>> https://github.com/dileepajayakody/isis-reputationbox >>> >>> >>> I populate a List of EmailViewModels with the ContextIO email response >>> in EmailService.allMessages() expecting them to be listed on the >>> WicketViewer when I run the application. >>> >>> However when running the application, I get an Error [1] as below and >>> get a HTTP 503. Can I have some insight on how to tackle this error? >>> >>> Thanks, >>> Dileepa >>> >>> >>> [1] >>> [exec] 1) Error in custom provider, >>> org.apache.isis.core.commons.exceptions.UnknownTypeException: collections >>> not supported as parameters: >>> org.json.JSONArray#put(int,java.util.Collection) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] while locating >>> org.apache.isis.core.runtime.system.IsisSystem >>> [exec] for field at >>> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:153) >>> [exec] while locating webapp.SimpleApplication >>> [exec] >>> [exec] 1 error >>> [exec] at >>> com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65) >>> [exec] at >>> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944) >>> [exec] at >>> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:239) >>> [exec] at >>> org.apache.wicket.Application.initApplication(Application.java:818) >>> [exec] at >>> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:424) >>> [exec] at >>> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351) >>> [exec] at >>> org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:102) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:745) >>> [exec] at >>> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) >>> [exec] at >>> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213) >>> [exec] at >>> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:589) >>> [exec] at >>> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) >>> [exec] at >>> org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) >>> [exec] at org.eclipse.jetty.server.Server.doStart(Server.java:261) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.simplericity.jettyconsole.DefaultJettyManager.startServer(DefaultJettyManager.java:124) >>> [exec] at >>> org.simplericity.jettyconsole.JettyConsole$5$1.run(JettyConsole.java:228) >>> [exec] Caused by: >>> org.apache.isis.core.commons.exceptions.UnknownTypeException: collections >>> not supported as parameters: >>> org.json.JSONArray#put(int,java.util.Collection) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.getParameters(ObjectActionImpl.java:212) >>> [exec] at >>> org.apache.isis.core.metamodel.facetdecorator.FacetDecoratorSet.decorate(FacetDecoratorSet.java:108) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.introspectIfRequired(ObjectReflectorDefault.java:563) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecificationForSubstitutedClass(ObjectReflectorDefault.java:462) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.internalLoadSpecification(ObjectReflectorDefault.java:440) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecifications(ObjectReflectorDefault.java:477) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.createAssociationFacetedMethods(FacetedMethodsBuilder.java:266) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.getAssociationFacetedMethods(FacetedMethodsBuilder.java:250) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.createAssociations(ObjectSpecificationDefault.java:221) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.introspectTypeHierarchyAndMembers(ObjectSpecificationDefault.java:184) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.introspectIfRequired(ObjectReflectorDefault.java:562) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecificationForSubstitutedClass(ObjectReflectorDefault.java:462) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.internalLoadSpecification(ObjectReflectorDefault.java:440) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecifications(ObjectReflectorDefault.java:477) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.createAssociationFacetedMethods(FacetedMethodsBuilder.java:266) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.getAssociationFacetedMethods(FacetedMethodsBuilder.java:250) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.createAssociations(ObjectSpecificationDefault.java:221) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.introspectTypeHierarchyAndMembers(ObjectSpecificationDefault.java:184) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.introspectIfRequired(ObjectReflectorDefault.java:562) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecificationForSubstitutedClass(ObjectReflectorDefault.java:462) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.internalLoadSpecification(ObjectReflectorDefault.java:440) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecifications(ObjectReflectorDefault.java:477) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecifications(ObjectReflectorDefault.java:490) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.representsAction(FacetedMethodsBuilder.java:469) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethod(FacetedMethodsBuilder.java:418) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:402) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:381) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.getActionFacetedMethods(FacetedMethodsBuilder.java:357) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.createActions(ObjectSpecificationDefault.java:244) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault.introspectTypeHierarchyAndMembers(ObjectSpecificationDefault.java:189) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.introspectIfRequired(ObjectReflectorDefault.java:562) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.loadSpecificationForSubstitutedClass(ObjectReflectorDefault.java:462) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.internalLoadSpecification(ObjectReflectorDefault.java:440) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.primeCache(ObjectReflectorDefault.java:312) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.initAndValidate(ObjectReflectorDefault.java:285) >>> [exec] at >>> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.init(ObjectReflectorDefault.java:243) >>> [exec] at >>> org.apache.isis.core.runtime.system.session.IsisSessionFactoryDefault.init(IsisSessionFactoryDefault.java:215) >>> [exec] at >>> org.apache.isis.core.runtime.system.IsisSystemFixturesHookAbstract.init(IsisSystemFixturesHookAbstract.java:139) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139) >>> [exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>> Method) >>> [exec] at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> [exec] at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> [exec] at java.lang.reflect.Method.invoke(Method.java:606) >>> [exec] at >>> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104) >>> [exec] at >>> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) >>> [exec] at >>> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) >>> [exec] at >>> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) >>> [exec] at >>> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) >>> [exec] at com.google.inject.Scopes$1$1.get(Scopes.java:65) >>> [exec] at >>> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) >>> [exec] at >>> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73) >>> [exec] at >>> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73) >>> [exec] at >>> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60) >>> [exec] ... 23 more >>> [exec] 16:43:18,330 [WicketFilter Thread-3 WARN ] >>> initialization failed, destroying now >>> [exec] 8680 [Thread-3] WARN >>> org.eclipse.jetty.util.component.AbstractLifeCycle - FAILED WicketFilter: >>> javax.servlet.ServletException: com.google.inject.ProvisionException: Guice >>> provision errors: >>> [exec] >>> [exec] 1) Error in custom provider, >>> org.apache.isis.core.commons.exceptions.UnknownTypeException: collections >>> not supported as parameters: >>> org.json.JSONArray#put(int,java.util.Collection) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] while locating >>> org.apache.isis.core.runtime.system.IsisSystem >>> [exec] for field at >>> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:153) >>> [exec] while locating webapp.SimpleApplication >>> [exec] >>> [exec] 1 error >>> [exec] javax.servlet.ServletException: >>> com.google.inject.ProvisionException: Guice provision errors: >>> [exec] >>> [exec] 1) Error in custom provider, >>> org.apache.isis.core.commons.exceptions.UnknownTypeException: collections >>> not supported as parameters: >>> org.json.JSONArray#put(int,java.util.Collection) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] at >>> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> [exec] while locating >>> org.apache.isis.core.runtime.system.IsisSystem >>> [exec] for field at >>> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:153) >>> [exec] while locating webapp.SimpleApplication >>> [exec] >>> [exec] 1 error >>> [exec] at >>> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:449) >>> [exec] at >>> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351) >>> [exec] at >>> org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:102) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:745) >>> [exec] at >>> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) >>> [exec] at >>> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213) >>> [exec] at >>> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:589) >>> [exec] at >>> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) >>> [exec] at >>> org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) >>> [exec] at org.eclipse.jetty.server.Server.doStart(Server.java:261) >>> [exec] at >>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) >>> [exec] at >>> org.simplericity.jettyconsole.DefaultJettyManager.startServer(DefaultJettyManager.java:124) >>> [exec] at >>> org.simplericity.jettyconsole.JettyConsole$5$1.run(JettyConsole.java:228) >>> [exec] Caused by: com.google.inject.ProvisionException: Guice >>> provision errors: >>> [exec] >>> >>> >> >> >
