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] > >
