[appengine-java] Re: FOP support / workaround
I got FOP working. On Oct 19, 6:37 pm, Stakka henrik.lindqv...@gmail.com wrote: I've tried to get ApacheFOPworking on GAE, using java.awt.* classes from Harmony. I came to the conclusion it's just to much work. Problems: * Implement the required java.awt.* and javax.imageio.* classes. * Implement a complete Graphics2D in java. JVMs use the OS native drawing APIs. * Implement font management, atleast TrueType. Same problem here, JVMs use native. If there was aFOPengine using iText instead, it would be easier. iText uses alot less awt classes and got its own font manager. Good luck - please post if you getFOPworking. On Oct 19, 10:21 am, nicanor.babula nicanor.bab...@gmail.com wrote: Got that solved by ignoring external-graphics tags. Now I am stuck with another restricted class: Error for /TestFOP java.lang.NoClassDefFoundError: java.awt.geom.AffineTransform is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.apphosting.runtime.security.shared.stub.java.awt.geom.AffineTransform.clinit (AffineTransform.java) at org.apache.xmlgraphics.java2d.GraphicContext.init (GraphicContext.java:59) at org.apache.fop.render.intermediate.IFGraphicContext.init (IFGraphicContext.java:42) at org.apache.fop.render.intermediate.IFRenderer.init (IFRenderer.java:127) at org.apache.fop.render.RendererFactory.createRendererForDocumentHandler (RendererFactory.java:313) at org.apache.fop.render.RendererFactory.tryIFDocumentHandlerMaker (RendererFactory.java:290) at org.apache.fop.render.RendererFactory.createRenderer (RendererFactory.java:270) at org.apache.fop.area.RenderPagesModel.init(RenderPagesModel.java: 69) at org.apache.fop.area.AreaTreeHandler.setupModel (AreaTreeHandler.java:130) at org.apache.fop.area.AreaTreeHandler.init(AreaTreeHandler.java: 102) at org.apache.fop.render.RendererFactory.createFOEventHandler (RendererFactory.java:359) at org.apache.fop.fo.FOTreeBuilder.init(FOTreeBuilder.java:105) at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:100) at org.apache.fop.apps.Fop.init(Fop.java:78) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:255) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:232) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.genPDF (TestFOP.java:90) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.doPost (TestFOP.java:56) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter (SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle (AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete (HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable (RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:139) at com.google.apphosting.runtime.JavaRuntime.handleRequest (JavaRuntime.java:239) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5135) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5133) at
Re: [appengine-java] Re: FOP support / workaround
Neat! Care to elaborate? On Tue, Dec 8, 2009 at 11:44 AM, nicanor.babula nicanor.bab...@gmail.comwrote: I got FOP working. On Oct 19, 6:37 pm, Stakka henrik.lindqv...@gmail.com wrote: I've tried to get ApacheFOPworking on GAE, using java.awt.* classes from Harmony. I came to the conclusion it's just to much work. Problems: * Implement the required java.awt.* and javax.imageio.* classes. * Implement a complete Graphics2D in java. JVMs use the OS native drawing APIs. * Implement font management, atleast TrueType. Same problem here, JVMs use native. If there was aFOPengine using iText instead, it would be easier. iText uses alot less awt classes and got its own font manager. Good luck - please post if you getFOPworking. On Oct 19, 10:21 am, nicanor.babula nicanor.bab...@gmail.com wrote: Got that solved by ignoring external-graphics tags. Now I am stuck with another restricted class: Error for /TestFOP java.lang.NoClassDefFoundError: java.awt.geom.AffineTransform is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.apphosting.runtime.security.shared.stub.java.awt.geom.AffineTransform.clinit (AffineTransform.java) at org.apache.xmlgraphics.java2d.GraphicContext.init (GraphicContext.java:59) at org.apache.fop.render.intermediate.IFGraphicContext.init (IFGraphicContext.java:42) at org.apache.fop.render.intermediate.IFRenderer.init (IFRenderer.java:127) at org.apache.fop.render.RendererFactory.createRendererForDocumentHandler (RendererFactory.java:313) at org.apache.fop.render.RendererFactory.tryIFDocumentHandlerMaker (RendererFactory.java:290) at org.apache.fop.render.RendererFactory.createRenderer (RendererFactory.java:270) at org.apache.fop.area.RenderPagesModel.init(RenderPagesModel.java: 69) at org.apache.fop.area.AreaTreeHandler.setupModel (AreaTreeHandler.java:130) at org.apache.fop.area.AreaTreeHandler.init(AreaTreeHandler.java: 102) at org.apache.fop.render.RendererFactory.createFOEventHandler (RendererFactory.java:359) at org.apache.fop.fo.FOTreeBuilder.init(FOTreeBuilder.java:105) at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:100) at org.apache.fop.apps.Fop.init(Fop.java:78) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:255) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:232) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.genPDF (TestFOP.java:90) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.doPost (TestFOP.java:56) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter (SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle (AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete (HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable (RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:139) at com.google.apphosting.runtime.JavaRuntime.handleRequest (JavaRuntime.java:239) at com.google.apphosting.base.RuntimePb$EvaluationRuntime
[appengine-java] Re: FOP support / workaround
Sure thing! http://nicanorcristian.blogspot.com/2009/11/apache-fop-on-google-application-engine.html On Dec 8, 5:57 pm, Toby Reyelts to...@google.com wrote: Neat! Care to elaborate? On Tue, Dec 8, 2009 at 11:44 AM, nicanor.babula nicanor.bab...@gmail.comwrote: I got FOP working. On Oct 19, 6:37 pm, Stakka henrik.lindqv...@gmail.com wrote: I've tried to get ApacheFOPworking on GAE, using java.awt.* classes from Harmony. I came to the conclusion it's just to much work. Problems: * Implement the required java.awt.* and javax.imageio.* classes. * Implement a complete Graphics2D in java. JVMs use the OS native drawing APIs. * Implement font management, atleast TrueType. Same problem here, JVMs use native. If there was aFOPengine using iText instead, it would be easier. iText uses alot less awt classes and got its own font manager. Good luck - please post if you getFOPworking. On Oct 19, 10:21 am, nicanor.babula nicanor.bab...@gmail.com wrote: Got that solved by ignoring external-graphics tags. Now I am stuck with another restricted class: Error for /TestFOP java.lang.NoClassDefFoundError: java.awt.geom.AffineTransform is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.apphosting.runtime.security.shared.stub.java.awt.geom.AffineTransform.clinit (AffineTransform.java) at org.apache.xmlgraphics.java2d.GraphicContext.init (GraphicContext.java:59) at org.apache.fop.render.intermediate.IFGraphicContext.init (IFGraphicContext.java:42) at org.apache.fop.render.intermediate.IFRenderer.init (IFRenderer.java:127) at org.apache.fop.render.RendererFactory.createRendererForDocumentHandler (RendererFactory.java:313) at org.apache.fop.render.RendererFactory.tryIFDocumentHandlerMaker (RendererFactory.java:290) at org.apache.fop.render.RendererFactory.createRenderer (RendererFactory.java:270) at org.apache.fop.area.RenderPagesModel.init(RenderPagesModel.java: 69) at org.apache.fop.area.AreaTreeHandler.setupModel (AreaTreeHandler.java:130) at org.apache.fop.area.AreaTreeHandler.init(AreaTreeHandler.java: 102) at org.apache.fop.render.RendererFactory.createFOEventHandler (RendererFactory.java:359) at org.apache.fop.fo.FOTreeBuilder.init(FOTreeBuilder.java:105) at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:100) at org.apache.fop.apps.Fop.init(Fop.java:78) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:255) at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:232) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.genPDF (TestFOP.java:90) at cri.almaitalia.AlmaOffice.server.Servlets.TestFOP.doPost (TestFOP.java:56) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter (SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle (AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete (HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable (RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at