Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    PDF - forbidden on Google Cloud Client, GWT

    1. code is copied from the showcase
    http://www.smartclient.com/smartgwtee/showcase/#chart_pdf_export
    (button is not working and I replace them with buttonItem)

    2. error is java.lang.NoClassDefFoundError: java.awt.geom.AffineTransform is a restricted class. Please see the Google App Engine developer's guide for more details

    3. first log is from {Download as PDF} button
    4. second log is from {View as PDF} button
    5. Maybe it works on server to generate some PDF pages ? Do you have some example code ?


    now the logs

    === 2014-12-04 14:14:05,521 [10-8] INFO IDACall - IDACall2 - Performing 1 operation(s)
    === 2014-12-04 14:14:05,541 [10-8] DEBUG XML - Parsed XML from jar:file:/E:/wks/carduri/war/WEB-INF/lib/isomorphic_core_rpc.jar!/isc_builtin.app.xml: 10ms
    Looking for ID:Application
    Looking for ID:Application found null
    === 2014-12-04 14:14:05,541 [10-8] DEBUG XML - Parsed XML from E:\wks\carduri\war\GAECloud_js\sc\system\schema\Application.ds.xml: 0ms
    Looking for ID:DataSource
    Looking for ID:DataSource found null
    === 2014-12-04 14:14:05,551 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 42 of type 'DataSource' and assigned it to thread 1280309342@qtp-878910010-8
    Looking for ID:field
    Looking for ID:field found null
    Looking for ID:DataSourceField
    Looking for ID:DataSourceField found null
    === 2014-12-04 14:14:05,561 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 43 of type 'DataSourceField' and assigned it to thread 1280309342@qtp-878910010-8
    === 2014-12-04 14:14:05,561 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 44 of type 'Application' and assigned it to thread 1280309342@qtp-878910010-8
    Looking for ID:ServerObject
    Looking for ID:ServerObject found null
    === 2014-12-04 14:14:05,571 [10-8] DEBUG XML - Parsed XML from E:\wks\carduri\war\GAECloud_js\sc\system\schema\ServerObject.ds.xml: 10ms
    Looking for ID:Object
    Looking for ID:Object found null
    === 2014-12-04 14:14:05,571 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 45 of type 'Object' and assigned it to thread 1280309342@qtp-878910010-8
    Looking for ID:fields
    Looking for ID:fields found null
    Looking for ID:ID
    Looking for ID:ID found null
    Looking for ID:methodName
    Looking for ID:methodName found null
    Looking for ID:valueMap
    Looking for ID:valueMap found null
    Looking for ID:lookupStyle
    Looking for ID:lookupStyle found null
    Looking for ID:attributeName
    Looking for ID:attributeName found null
    Looking for ID:attributeScope
    Looking for ID:attributeScope found null
    Looking for ID:bean
    Looking for ID:bean found null
    Looking for ID:visibleMethods
    Looking for ID:visibleMethods found null
    Looking for ID:dropExtraFields
    Looking for ID:dropExtraFields found null
    Looking for ID:crudOnly
    Looking for ID:crudOnly found null
    === 2014-12-04 14:14:05,591 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 46 of type 'ServerObject' and assigned it to thread 1280309342@qtp-878910010-8
    Looking for ID:Method
    Looking for ID:Method found null
    === 2014-12-04 14:14:05,591 [10-8] DEBUG XML - Parsed XML from E:\wks\carduri\war\GAECloud_js\sc\system\schema\Method.ds.xml: 0ms
    Looking for ID:Object
    Looking for ID:Object found null
    === 2014-12-04 14:14:05,591 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 47 of type 'Object' and assigned it to thread 1280309342@qtp-878910010-8
    Looking for ID:fields
    Looking for ID:fields found null
    Looking for ID:name
    Looking for ID:name found null
    Looking for ID:args
    Looking for ID:args found null
    Looking for ID:language
    Looking for ID:language found null
    Looking for ID:script
    Looking for ID:script found null
    === 2014-12-04 14:14:05,601 [10-8] DEBUG PoolableDataSourceFactory - Created DataSource 48 of type 'Method' and assigned it to thread 1280309342@qtp-878910010-8
    === 2014-12-04 14:14:05,621 [10-8] DEBUG RPCDMI - appConfig: isc.Application.create({
    rpcBindings:[
    {
    ID:"builtin",
    className:"com.isomorphic.rpc.BuiltinRPC",
    visibleMethods:[
    {
    name:"downloadWSDL"
    },
    {
    name:"downloadClientContent"
    },
    {
    name:"downloadClientExport"
    },
    {
    name:"xmlToJS"
    },
    {
    name:"uploadProgressCheck"
    },
    {
    name:"saveFile"
    },
    {
    name:"appendToFile"
    },
    {
    name:"loadFile"
    },
    {
    name:"deleteFile"
    },
    {
    name:"loadSharedXML"
    },
    {
    name:"saveSharedXML"
    },
    {
    name:"getAvailableScriptEngines"
    },
    {
    name:"devConsoleEvalServerScript"
    },
    {
    name:"evalJava"
    },
    {
    name:"getLogNames"
    },
    {
    name:"getLogEntries"
    },
    {
    name:"clearLogEntries"
    },
    {
    name:"getLogThresholds"
    },
    {
    name:"setLogThreshold"
    },
    {
    name:"setTemporaryLogThreshold"
    },
    {
    name:"revertTemporaryLogThresholds"
    },
    {
    name:"getPdfObject"
    },
    {
    name:"exportImage"
    },
    {
    name:"areServerTimingsTracked"
    },
    {
    name:"trackServerTimings"
    }
    ]
    },
    {
    ID:"builtin_tools",
    className:"com.isomorphic.tools.BuiltinRPC",
    visibleMethods:[
    {
    name:"getDataSourceFromTable"
    },
    {
    name:"getDataSourceJSONFromTable"
    },
    {
    name:"getDataSourceFromHibernateMapping"
    },
    {
    name:"getDataSourceJSONFromHibernateMapping"
    },
    {
    name:"getTables"
    },
    {
    name:"getFieldsFromTable"
    },
    {
    name:"getBeanFields"
    },
    {
    name:"getHibernateBeans"
    },
    {
    name:"getDatabaseProductNameAndVersion"
    },
    {
    name:"getDatabaseTableTypes"
    },
    {
    name:"setAttributes"
    },
    {
    name:"clearAttributes"
    },
    {
    name:"getAttributes"
    },
    {
    name:"getAttribute"
    },
    {
    name:"getDataSourceConfigFromJavaClass"
    },
    {
    args:"cName",
    language:"groovy",
    name:"getJavaSource",
    script:"\n if (!com.isomorphic.auth.DevModeAuthFilter.devModeAuthorized(request)) throw new Exception(\"Not Authorized\"); \n //import org.apache.bcel.Repository;\n\n try {\n return org.apache.bcel.Repository.lookupClass(cName).toString();\n } catch (Throwable e) {\n return \"Unable to reverse engineer class \"+cName+\": \"+e.getMessage();\n }\n "
    },
    {
    name:"loadDataSource"
    },
    {
    name:"dsFromXML"
    },
    {
    name:"dsConfigFromXML"
    },
    {
    name:"getDefinedDataSources"
    }
    ]
    },
    {
    ID:"builtin_adminconsole",
    className:"com.isomorphic.tools.AdminConsole",
    visibleMethods:[
    {
    name:"getDefinedDatabases"
    },
    {
    name:"testDB"
    },
    {
    name:"saveDBConfig"
    },
    {
    name:"setDefaultDB"
    },
    {
    name:"importDataSources"
    },
    {
    name:"discoverJNDIDatabases"
    }
    ]
    }
    ]
    })

    === 2014-12-04 14:14:05,642 [10-8] INFO PdfExport - CharSet used: UTF-8
    === 2014-12-04 14:14:05,652 [10-8] DEBUG ConfigParser - Matched var name: gwtModuleName
    === 2014-12-04 14:14:05,652 [10-8] DEBUG ConfigParser - value after substitution: GAECloud_js/sc
    === 2014-12-04 14:14:05,834 [10-8] DEBUG RPCDMI - Invocation threw exception
    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.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at org.xhtmlrenderer.pdf.ITextOutputDevice.<clinit>(ITextOutputDevice.java:97)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:108)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102)
    at com.isomorphic.contentexport.PdfExport.getPdfRenderer(PdfExport.java:332)
    at com.isomorphic.contentexport.PdfExport.getPdfObject(PdfExport.java:76)
    at com.isomorphic.rpc.BuiltinRPC.getPdfObject(BuiltinRPC.java:905)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
    at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
    at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:321)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:175)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:142)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    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:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:487)
    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.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    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)
    === 2014-12-04 14:14:05,834 [10-8] WARN RequestContext - rpcRequest.execute() failed:
    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.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at org.xhtmlrenderer.pdf.ITextOutputDevice.<clinit>(ITextOutputDevice.java:97)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:108)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102)
    at com.isomorphic.contentexport.PdfExport.getPdfRenderer(PdfExport.java:332)
    at com.isomorphic.contentexport.PdfExport.getPdfObject(PdfExport.java:76)
    at com.isomorphic.rpc.BuiltinRPC.getPdfObject(BuiltinRPC.java:905)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
    at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
    at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:321)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:175)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:142)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    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:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:487)
    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.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    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)
    === 2014-12-04 14:14:05,834 [10-8] DEBUG RPCManager - Content type for RPC transaction: text/html; charset=UTF-8
    === 2014-12-04 14:16:02,180 [10-0] DEBUG IDACall - IDACall2 - Header Name:Value pair: Accept:text/html, application/xhtml+xml, */*

    *************************************************************************************************************

    on {view as PDF} button

    === 2014-12-04 14:16:02,206 [10-0] INFO IDACall - IDACall2 - Performing 1 operation(s)
    === 2014-12-04 14:16:02,206 [10-0] DEBUG RPCDMI - appConfig: isc.Application.create({
    rpcBindings:[
    {
    ID:"builtin",
    className:"com.isomorphic.rpc.BuiltinRPC",
    visibleMethods:[
    {
    name:"downloadWSDL"
    },
    {
    name:"downloadClientContent"
    },
    {
    name:"downloadClientExport"
    },
    {
    name:"xmlToJS"
    },
    {
    name:"uploadProgressCheck"
    },
    {
    name:"saveFile"
    },
    {
    name:"appendToFile"
    },
    {
    name:"loadFile"
    },
    {
    name:"deleteFile"
    },
    {
    name:"loadSharedXML"
    },
    {
    name:"saveSharedXML"
    },
    {
    name:"getAvailableScriptEngines"
    },
    {
    name:"devConsoleEvalServerScript"
    },
    {
    name:"evalJava"
    },
    {
    name:"getLogNames"
    },
    {
    name:"getLogEntries"
    },
    {
    name:"clearLogEntries"
    },
    {
    name:"getLogThresholds"
    },
    {
    name:"setLogThreshold"
    },
    {
    name:"setTemporaryLogThreshold"
    },
    {
    name:"revertTemporaryLogThresholds"
    },
    {
    name:"getPdfObject"
    },
    {
    name:"exportImage"
    },
    {
    name:"areServerTimingsTracked"
    },
    {
    name:"trackServerTimings"
    }
    ]
    },
    {
    ID:"builtin_tools",
    className:"com.isomorphic.tools.BuiltinRPC",
    visibleMethods:[
    {
    name:"getDataSourceFromTable"
    },
    {
    name:"getDataSourceJSONFromTable"
    },
    {
    name:"getDataSourceFromHibernateMapping"
    },
    {
    name:"getDataSourceJSONFromHibernateMapping"
    },
    {
    name:"getTables"
    },
    {
    name:"getFieldsFromTable"
    },
    {
    name:"getBeanFields"
    },
    {
    name:"getHibernateBeans"
    },
    {
    name:"getDatabaseProductNameAndVersion"
    },
    {
    name:"getDatabaseTableTypes"
    },
    {
    name:"setAttributes"
    },
    {
    name:"clearAttributes"
    },
    {
    name:"getAttributes"
    },
    {
    name:"getAttribute"
    },
    {
    name:"getDataSourceConfigFromJavaClass"
    },
    {
    args:"cName",
    language:"groovy",
    name:"getJavaSource",
    script:"\n if (!com.isomorphic.auth.DevModeAuthFilter.devModeAuthorized(request)) throw new Exception(\"Not Authorized\"); \n //import org.apache.bcel.Repository;\n\n try {\n return org.apache.bcel.Repository.lookupClass(cName).toString();\n } catch (Throwable e) {\n return \"Unable to reverse engineer class \"+cName+\": \"+e.getMessage();\n }\n "
    },
    {
    name:"loadDataSource"
    },
    {
    name:"dsFromXML"
    },
    {
    name:"dsConfigFromXML"
    },
    {
    name:"getDefinedDataSources"
    }
    ]
    },
    {
    ID:"builtin_adminconsole",
    className:"com.isomorphic.tools.AdminConsole",
    visibleMethods:[
    {
    name:"getDefinedDatabases"
    },
    {
    name:"testDB"
    },
    {
    name:"saveDBConfig"
    },
    {
    name:"setDefaultDB"
    },
    {
    name:"importDataSources"
    },
    {
    name:"discoverJNDIDatabases"
    }
    ]
    }
    ]
    })

    === 2014-12-04 14:16:02,206 [10-0] INFO PdfExport - CharSet used: UTF-8
    === 2014-12-04 14:16:02,247 [10-0] DEBUG RPCDMI - Invocation threw exception
    java.lang.NoClassDefFoundError: Could not initialize class org.xhtmlrenderer.pdf.ITextOutputDevice
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:108)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102)
    at com.isomorphic.contentexport.PdfExport.getPdfRenderer(PdfExport.java:332)
    at com.isomorphic.contentexport.PdfExport.getPdfObject(PdfExport.java:76)
    at com.isomorphic.rpc.BuiltinRPC.getPdfObject(BuiltinRPC.java:905)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
    at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
    at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:321)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:175)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:142)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    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:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:487)
    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.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    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)
    === 2014-12-04 14:16:02,247 [10-0] WARN RequestContext - rpcRequest.execute() failed:
    java.lang.NoClassDefFoundError: Could not initialize class org.xhtmlrenderer.pdf.ITextOutputDevice
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:108)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102)
    at com.isomorphic.contentexport.PdfExport.getPdfRenderer(PdfExport.java:332)
    at com.isomorphic.contentexport.PdfExport.getPdfObject(PdfExport.java:76)
    at com.isomorphic.rpc.BuiltinRPC.getPdfObject(BuiltinRPC.java:905)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
    at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
    at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
    at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
    at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:321)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:175)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:142)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    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:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:487)
    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.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    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)
    === 2014-12-04 14:16:02,247 [10-0] DEBUG RPCManager - Content type for RPC transaction: text/html; charset=UTF-8

    #2
    Google App Engine is incompatible with many common Java libraries including ones needed for the PDF export feature.

    Unless you have an extremely compelling reason to use GAE, we would recommend Amazon Web Services instead, which doesn't have these issues.

    Comment


      #3
      Workaround

      1. Workaround 1 - fast track - rent a virtual server and move all the tricky code there
      2. Workaround 2 - slow track - learn and test Amazon Web Services
      Free Tier for 1 year
      http://aws.amazon.com/ec2/pricing/
      http://aws.amazon.com/sdk-for-java/

      Comment


        #4
        Actually #2 is what we would consider by far the faster track. The AWS Eclipse plugin makes deployment to AWS straight from Eclipse extremely easy.

        Comment

        Working...
        X