RE: "Since Jena is an open-source (third party) library, I don't have control over it."
Because Jena is open-source, you *do* have control over it. See what it would take to modify Jena to run on GAE, then submit your patches back to the project owners. On Thu, Oct 29, 2009 at 11:20 AM, Pion <[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
