I am using Jena which is an open-source Java framework for building Semantic Web applications. It's been working fine on my local Eclipse development. I have just deployed it and it fails because Jena uses java.rmi.server.UID -- please see the error logs below.
java.rmi.server.UID is not listed on http://code.google.com/intl/de/appengine/docs/java/jrewhitelist.html. Since Jena is an open-source (third party) library, I don't have control over it. One potential solution is to host Jena outside GAE such as Amazon EC2. Obviously, it is not ideal. It solves the limitation of the JRE Class White List but it will introduce other problems (scalability, another indirection, maintenance, etc). I am sure this is a common issue as many of us are porting existing apps/libraries/SDKs to Google App Engine. I'd appreciate your advice on this issue. Thanks in advance for your help. My environments: GAE Java 1.2.6, GWT 1.7.1, Eclipse(Galileo), Windows Vista (32-bit). ERROR LOGS 10-29 07:38AM 59.438 /col/input 500 6020ms 5638cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/ 3.5.3 (.NET CLR 3.5.30729),gzip(gfe) 98.232.111.83 - - [29/Oct/2009:07:39:05 -0700] "POST /col/input HTTP/ 1.1" 500 113 "http://foafan2000.appspot.com/col/ 69AAFD5DE4B9915A24B29439E261B4A5.cache.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729),gzip(gfe)" "foafan2000.appspot.com" E 10-29 07:39AM 05.433 javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.col.client.CInputService.getFoaf (java.lang.String)' threw an unexpected exception: java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure (RPC.java:360) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:546) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall (RemoteServiceServlet.java:166) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost (RemoteServiceServlet.java:86) 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 com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest (BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 363) at com.google.net.rpc.impl.Server$2.run(Server.java:814) at com.google.tracing.LocalTraceSpanRunnable.run (LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan (LocalTraceSpanBuilder.java:516) at com.google.net.rpc.impl.Server.startRpc(Server.java:769) at com.google.net.rpc.impl.Server.processRequest(Server.java:351) at com.google.net.rpc.impl.ServerConnection.messageReceived (ServerConnection.java:437) at com.google.net.rpc.impl.RpcConnection.parseMessages (RpcConnection.java:319) at com.google.net.rpc.impl.RpcConnection.dataReceived (RpcConnection.java:290) at com.google.net.async.Connection.handleReadEvent(Connection.java: 436) at com.google.net.async.EventDispatcher.processNetworkEvents (EventDispatcher.java:762) at com.google.net.async.EventDispatcher.internalLoop (EventDispatcher.java:207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 101) at com.google.net.rpc.RpcService.runUntilServerShutdown (RpcService.java:251) at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run (JavaRuntime.java:396) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted class. Please see the Google App Engine developer's guide for more details. at java.rmi.server.UID.<clinit>(UID.java) at com.hp.hpl.jena.rdf.model.AnonId.<init>(AnonId.java:78) at com.hp.hpl.jena.rdf.model.AnonId.create(AnonId.java:60) at com.hp.hpl.jena.graph.Node.createAnon(Node.java:45) at com.hp.hpl.jena.rdf.arp.JenaReader.convert(JenaReader.java:116) at com.hp.hpl.jena.rdf.arp.JenaReader.convert(JenaReader.java:124) at com.hp.hpl.jena.rdf.arp.JenaHandler.statement(JenaHandler.java:64) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.triple(XMLHandler.java:98) at com.hp.hpl.jena.rdf.arp.impl.ParserSupport.triple (ParserSupport.java:240) at com.hp.hpl.jena.rdf.arp.states.WantDescription.startElement (WantDescription.java:85) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement (XMLHandler.java:137) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement (Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement (Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl $FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument (Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java: 107) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:158) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:145) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:215) at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:217) at com.hp.hpl.jena.ontology.OntDocumentManager.findMetadata (OntDocumentManager.java:895) at com.hp.hpl.jena.ontology.OntDocumentManager.initialiseMetadata (OntDocumentManager.java:853) at com.hp.hpl.jena.ontology.OntDocumentManager.<init> (OntDocumentManager.java:201) at com.hp.hpl.jena.ontology.OntDocumentManager.<init> (OntDocumentManager.java:183) at com.hp.hpl.jena.ontology.OntDocumentManager.<init> (OntDocumentManager.java:167) at com.hp.hpl.jena.ontology.OntDocumentManager.getInstance (OntDocumentManager.java:245) at com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager (OntModelSpec.java:340) at com.hp.hpl.jena.ontology.impl.OntModelImpl.getDocumentManager (OntModelImpl.java:181) at com.hp.hpl.jena.ontology.impl.OntModelImpl.loadImports (OntModelImpl.java:1887) at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init> (OntModelImpl.java:148) at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init> (OntModelImpl.java:120) at com.hp.hpl.jena.rdf.model.ModelFactory.createOntologyModel (ModelFactory.java:400) at com.col.server.foaf.Foaf.createModel(Foaf.java:57) at com.col.server.CModel.getFoaf(CModel.java:41) at com.col.server.CInputServiceImpl.getFoaf(CInputServiceImpl.java: 33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Method.java:40) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:527) ... 43 more --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---
