In the Eclipse preferences under Java -> Installed JREs -> Execution Environments,
Eclipse offers the ability to select special profiles for different environments,
e.g. to disallow access to classes not available on mobile platforms, etc.
Do you know if the Google Eclipse plugins ship with an execution environment
definition for the app engine or maybe if some third-party provides this? That
could offer a good way of checking at once which parts of the UIMA-SDK may be
incompatible with the App Engine.
Cheers,
-- Richard
Am 29.08.2013 um 04:00 schrieb Marshall Schor <msa@schor.com>:
> I did some more digging, and found this page:
> https://developers.google.com/appengine/docs/java
>
> It has statements about what's allowed, and what's not, and a "Whitelist" of
> allowed classes.
>
> https://developers.google.com/appengine/docs/java/jrewhitelist
>
> My guess is that you've perhaps found just the 1st restricted class.
>
> -Marshall
>
> On 8/26/2013 6:20 AM, Lee Becker wrote:
>> Has anyone had any success deploying UIMA components in the Google App
>> Engine? Right now, I am trying to package up some UIMAFit-based components
>> in a GAE servlet, but when I create my analysis engines, I get the
>> exception pasted below.
>>
>> The trouble seems to come from this line in UimaContext.
>>
>> uniqueIdentifier = new UID().toString();
>> Basically, I believe UIMA is using the java.rmi package as a convenient way
>> to generate UIDs. Meanwhile Google App Engine does not allow any access to
>> RMI classes.
>>
>> Does anyone know any workarounds?
>>
>> Thanks,
>> Lee
>>
>>
>> [INFO] java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted
>> class. Please see the Google App Engine developer's guide for more details.
>> [INFO] at
>> com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
>> [INFO] at
>> org.apache.uima.impl.UimaContext_ImplBase.<init>(UimaContext_ImplBase.java:129)
>> [INFO] at
>> org.apache.uima.impl.RootUimaContext_impl.<init>(RootUimaContext_impl.java:41)
>> [INFO] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>> [INFO] at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>> [INFO] at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>> [INFO] at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>> [INFO] at
>> com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:127)
>> [INFO] at
>> com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:148)
>> [INFO] at
>> org.apache.uima.impl.UIMAFramework_impl._newUimaContext(UIMAFramework_impl.java:383)
>> [INFO] at
>> org.apache.uima.UIMAFramework.newUimaContext(UIMAFramework.java:1031)
>> [INFO] at
>> org.apache.uima.resource.Resource_ImplBase.initialize(Resource_ImplBase.java:107)
>> [INFO] at
>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.initialize(AnalysisEngineImplBase.java:157)
>> [INFO] at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:123)
>> [INFO] at
>> org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
>> [INFO] at
>> org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
>> [INFO] at
>> org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:269)
>> [INFO] at
>> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:354)
>> [INFO] at
>> org.uimafit.factory.AnalysisEngineFactory.createPrimitive(AnalysisEngineFactory.java:392)
>> [INFO] at
>> com.hapara.analytics.nlp.PreprocessServlet.init(PreprocessServlet.java:52)
>> [INFO] at javax.servlet.GenericServlet.init(GenericServlet.java:212)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
>> [INFO] at
>> com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:61)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> [INFO] at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>> [INFO] at
>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>> [INFO] at
>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>> [INFO] at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>> [INFO] at
>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>> [INFO] at
>> com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:94)
>> [INFO] at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>> [INFO] at
>> com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:409)
>> [INFO] at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>> [INFO] at org.mortbay.jetty.Server.handle(Server.java:326)
>> [INFO] at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>> [INFO] at
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
>> [INFO] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
>> [INFO] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>> [INFO] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>> [INFO] at
>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>> [INFO] at
>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
>> [INFO]
>>
>
|