Showing posts with label Seam. Show all posts
Showing posts with label Seam. Show all posts

Tuesday, October 1, 2013

Here Be Dragons: Apache DeltaSpike on Google App Engine

I recently tried using Apache DeltaSpike, CDI extensions that are the official successor to Seam. On the Google App Engine.

Unfortunately, as of this writing (and version .4 of DeltaSpike) the library triggers the infamous Restricted Class error:

[INFO] Oct 01, 2013 11:59:04 PM com.sun.faces.config.ConfigureListener contextInitialized
[INFO] SEVERE: Critical error during deployment: 
[INFO] com.sun.faces.config.ConfigurationException: Factory 'javax.faces.context.FacesContextFactory' was not configured properly.
[INFO]  at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:330)
[INFO]  at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:236)
[INFO]  at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:435)
[INFO]  at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:214)
[INFO]  at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
[INFO]  at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
[INFO]  at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
[INFO]  at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
[INFO]  at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO]  at org.mortbay.jetty.Server.doStart(Server.java:224)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:249)
[INFO]  at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:306)
[INFO]  at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
[INFO]  at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:79)
[INFO]  at com.google.appengine.tools.development.Modules.startup(Modules.java:88)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:240)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:399)
[INFO]  at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:334)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:310)
[INFO] Caused by: javax.faces.FacesException: org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeFacesContextFactory
[INFO]  at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:710)
[INFO]  at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:572)
[INFO]  at javax.faces.FactoryFinder.access$500(FactoryFinder.java:140)
[INFO]  at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1120)
[INFO]  at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379)
[INFO]  at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:328)
[INFO]  ... 24 more
[INFO] Caused by: java.lang.reflect.InvocationTargetException
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[INFO]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[INFO]  at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:127)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:135)
[INFO]  at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:690)
[INFO]  ... 29 more
[INFO] Caused by: java.util.ServiceConfigurationError: org.apache.deltaspike.core.spi.config.ConfigSourceProvider: Provider org.apache.deltaspike.core.impl.config.DefaultConfigSourceProvider could not be instantiated: java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO]  at java.util.ServiceLoader.fail(ServiceLoader.java:224)
[INFO]  at java.util.ServiceLoader.access$100(ServiceLoader.java:181)
[INFO]  at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:370)
[INFO]  at java.util.ServiceLoader$1.next(ServiceLoader.java:438)
[INFO]  at org.apache.deltaspike.core.util.ServiceUtils.loadServiceImplementations(ServiceUtils.java:55)
[INFO]  at org.apache.deltaspike.core.api.config.ConfigResolver.resolveConfigSources(ConfigResolver.java:224)
[INFO]  at org.apache.deltaspike.core.api.config.ConfigResolver.getConfigSources(ConfigResolver.java:203)
[INFO]  at org.apache.deltaspike.core.api.config.ConfigResolver.getAllPropertyValues(ConfigResolver.java:160)
[INFO]  at org.apache.deltaspike.core.util.ClassDeactivationUtils.initConfiguredClassDeactivators(ClassDeactivationUtils.java:152)
[INFO]  at org.apache.deltaspike.core.util.ClassDeactivationUtils.getClassDeactivators(ClassDeactivationUtils.java:143)
[INFO]  at org.apache.deltaspike.core.util.ClassDeactivationUtils.initDeactivatableCacheFor(ClassDeactivationUtils.java:88)
[INFO]  at org.apache.deltaspike.core.util.ClassDeactivationUtils.isActivated(ClassDeactivationUtils.java:73)
[INFO]  at org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeFacesContextFactory.<init>(DeltaSpikeFacesContextFactory.java:42)
[INFO]  ... 36 more
[INFO] Caused by: java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
[INFO]  at org.apache.deltaspike.core.impl.util.JndiUtils.<clinit>(JndiUtils.java:51)
[INFO]  at java.lang.Class.forName0(Native Method)
[INFO]  at java.lang.Class.forName(Class.java:186)
[INFO]  at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
[INFO]  at org.apache.deltaspike.core.impl.config.LocalJndiConfigSource.getPropertyValue(LocalJndiConfigSource.java:53)
[INFO]  at org.apache.deltaspike.core.impl.config.BaseConfigSource.initOrdinal(BaseConfigSource.java:54)
[INFO]  at org.apache.deltaspike.core.impl.config.LocalJndiConfigSource.<init>(LocalJndiConfigSource.java:39)
[INFO]  at org.apache.deltaspike.core.impl.config.DefaultConfigSourceProvider.<init>(DefaultConfigSourceProvider.java:49)
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[INFO]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[INFO]  at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
[INFO]  at java.lang.Class.newInstance0(Class.java:372)
[INFO]  at java.lang.Class.newInstance(Class.java:325)
[INFO]  at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:362)
[INFO]  ... 46 more