problems with richfaces on google app engine
cremersstijn Feb 20, 2011 10:00 AMHi Folks!
I'm building a web application with richfaces that will run on google app engine.
But i've encountered some problems:
I've got this error when i use a menu item on the page
java.lang.NoClassDefFoundError: java.awt.Dimension is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) at org.richfaces.renderkit.html.images.MenuNodeImage.<clinit>(MenuNodeImage.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:112) at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:132) at org.richfaces.resource.ResourceFactoryImpl.createDynamicUserResourceInstance(ResourceFactoryImpl.java:258) at org.richfaces.resource.ResourceFactoryImpl.createHandlerDependentResource(ResourceFactoryImpl.java:320) at org.richfaces.resource.ResourceFactoryImpl.createDynamicResource(ResourceFactoryImpl.java:462) at org.richfaces.resource.ResourceFactoryImpl.createResource(ResourceFactoryImpl.java:432) at org.richfaces.resource.ResourceHandlerImpl.createResource(ResourceHandlerImpl.java:268) at org.richfaces.resource.ResourceHandlerImpl.createResource(ResourceHandlerImpl.java:283) at com.sun.faces.el.ResourceELResolver.getValue(ResourceELResolver.java:105) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:231) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at com.sun.el.parser.AstValue.getValue(AstValue.java:116) at com.sun.el.parser.AstValue.getValue(AstValue.java:163) at com.sun.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:59) at com.sun.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:64) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219) at com.sun.faces.application.ApplicationImpl.evaluateExpressionGet(ApplicationImpl.java:427) at org.jboss.weld.environment.servlet.jsf.ForwardingApplication.evaluateExpressionGet(ForwardingApplication.java :187) at org.richfaces.resource.css.CSSVisitorImpl.visitStyleDeclaration(CSSVisitorImpl.java:223) at org.richfaces.resource.css.AbstractCSSVisitor.visitStyleRule(AbstractCSSVisitor.java:99) at org.richfaces.resource.css.AbstractCSSVisitor.visitRule(AbstractCSSVisitor.java:62) at org.richfaces.resource.css.AbstractCSSVisitor.visitStyleSheet(AbstractCSSVisitor.java:49) at org.richfaces.resource.CompiledCSSResource.getInputStream(CompiledCSSResource.java:126) at org.richfaces.resource.CachedResourceImpl.initialize(CachedResourceImpl.java:178) at org.richfaces.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:171) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.jav a:351) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
When i run "mvn clean install gae:run" i got the follwing error:
java.lang.UnsupportedOperationException at javax.faces.context.ExternalContext.getMimeType(ExternalContext.java:424) at org.richfaces.resource.ResourceFactoryImpl$ExternalStaticResourceFactory.createResource(ResourceFactoryImpl.j ava:74) at org.richfaces.resource.ResourceFactoryImpl.createResource(ResourceFactoryImpl.java:429) at org.richfaces.cdk.resource.handler.impl.DynamicResourceHandler.createResource(DynamicResourceHandler.java:89) at org.richfaces.cdk.resource.handler.impl.AbstractResourceHandler.createResource(AbstractResourceHandler.java:4 3) at org.richfaces.cdk.task.ResourceTaskFactoryImpl$ResourcesRendererCallable.createResource(ResourceTaskFactoryIm pl.java:63) at org.richfaces.cdk.task.ResourceTaskFactoryImpl$ResourcesRendererCallable.checkResource(ResourceTaskFactoryImp l.java:95) at org.richfaces.cdk.task.ResourceTaskFactoryImpl$ResourcesRendererCallable.call(ResourceTaskFactoryImpl.java:12 2) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
I've put the follwing plugins in the pom.xml (just like on the showcase example)
<plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>src/main/webapp</directory> </resource> <resource> <directory>${project.build.directory}/generated-resources</directory> <targetPath>static-resources</targetPath> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <targetPath>/WEB-INF/src</targetPath> </resource> </webResources> </configuration> </plugin> <plugin> <groupId>org.richfaces.cdk</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${richfaces.version}</version> <configuration> </configuration> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <configuration> <outputDir>generated-resources</outputDir> <skins> <skin>blueSky</skin> <skin>classic</skin> <skin>deepMarine</skin> <skin>emeraldTown</skin> <skin>japanCherry</skin> <skin>ruby</skin> <skin>wine</skin> </skins> <includedContentTypes> <include>application/javascript</include> <include>text/css</include> <include>image/.+</include> </includedContentTypes> <fileNameMappings> <property> <name>^.*showcase.*/([^/]+\.css)$</name> <value>org.richfaces.showcase.css/$1</value> </property> <property> <name>^.+/([^/]+\.(png|gif|jpg))$</name> <value>org.richfaces.images/$1</value> </property> <property> <name>^.+/([^/]+\.css)$</name> <value>org.richfaces.css/$1</value> </property> </fileNameMappings> </configuration> </execution> </executions> </plugin>
Environment:
Richfaces 4.0.0.20110209-M6
Weld 1.0.1-Final
google app engine 1.4.2