`
liwanfeng
  • 浏览: 46890 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GAE 应用无法正常启动

阅读更多
做了一个应用,用来尝试对常用的基本的框架的支持,其中使用了Struts2、Spring 3.0.3、Dwr 2.0.6。

其中采用了Spring配置数据源的方式,应用在本地运行没有任何问题,上传到GAE就无法正常启动,异常信息为:

Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@169dd64{/,/base/data/home/apps/yourapp/1.343453889463088751}
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355)
at java.security.AccessController.checkPermission(AccessController.java:567)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:45)
at com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:93)
at java.lang.ThreadGroup.checkAccess(Unknown Source)
at java.lang.Thread.init(Unknown Source)
at java.lang.Thread.<init>(Unknown Source)
at org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:54)
at org.apache.log4j.PropertyWatchdog.<init>(PropertyConfigurator.java:709)
at org.apache.log4j.PropertyConfigurator.configureAndWatch(PropertyConfigurator.java:400)
at org.springframework.util.Log4jConfigurer.initLogging(Log4jConfigurer.java:105)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:143)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:191)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:7115)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:7113)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
at com.google.net.rpc.impl.Server$2.run(Server.java:852)
at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
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:474)
at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:417)
at java.lang.Thread.run(Unknown Source)
C 07-18 08:17AM 45.951
Uncaught exception from servlet
javax.servlet.UnavailableException: Initialization failed.
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:200)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:7115)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:7113)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
at com.google.net.rpc.impl.Server$2.run(Server.java:852)
at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
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:474)
at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:417)
at java.lang.Thread.run(Unknown Source)



问题原因:一个应用中不允许创建多个PersistenceManagerFactory对象实现数据库操作,而系统中默认的jdoconfig.xml文件中包含了JDO相关信息,由于我采用了Spring所以同时也配置了一个JDO,所以在应用启动过程中采用不同的方式创建了两个PersistenceManagerFactory对象,导致系统无法正常启动。


解决办法:只采用一种方式完成PersistenceManagerFactory对象的创建,我的方法是将jdoconfig.xml文件中包含的JDO配置信息删除。




结果:系统正常运行。


分享到:
评论

相关推荐

    GAE 应用发布管理 AppScale.zip

    当用户部署应用程序时,AppScale 会自动配置和管理这些虚拟实例,确保应用程序能够正常运行。AppScale 还提供了自己的 API 服务器,用于处理应用的生命周期管理,如实例的启动、停止、扩展等。 **使用 appscale-...

    基于GAE的Demo

    GAE是Google提供的一个云计算平台,允许开发者在Google的基础设施上部署和运行Web应用,提供了包括计算、存储、数据库等在内的多种服务。 首先,Google App Engine(GAE)是Google推出的一个PaaS(Platform as a ...

    spring+gae

    8. **配置**:正确配置`web.xml`和`appengine-web.xml`文件,以确保Spring应用在GAE上的正常启动和运行。 文件列表中的"spring-gae"可能是一个包含源代码、配置文件和文档的项目,展示了整个集成过程。通过深入研究...

    GAE包(以配置好,解压可用)

    用户只需解压,通过提供的Python解释器运行SDU中的exe文件,并启动localproxy中的proxy.py,就可以开始开发和测试GAE应用程序了。这大大降低了入门门槛,提高了开发效率,尤其适合快速尝试GAE开发或教学用途。

    GAE blog安装

    标题“GAE blog安装”指的是在Google App Engine (GAE)上部署一个博客应用的过程。GAE是一个由Google提供的平台即服务(PaaS)云环境,允许开发者构建、运行和维护Web应用程序,无需管理和维护底层基础设施。在这个...

    GAE使用规则

    GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    【标题】"gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_" 提供的信息表明,这是一个使用PyTorch实现的图自编码器(Graph Autoencoder, GAE)项目,其核心是将自编码器的概念应用于图数据。...

    gae_in_pytorch-master_GAE_

    图形自动编码器(Graph Autoencoder, GAE)是一种应用于图数据的深度学习模型,它结合了自动编码器(Autoencoder)的思想与图神经网络(Graph Neural Network, GNN)的特性。GAE的目标是学习到图的低维表示,即节点...

    GAE之webapp框架

    3. **启动应用**:定义`main()`函数,调用`run_wsgi_app()`方法启动应用。在`main()`函数外部使用条件语句确保只在作为主程序执行时才调用`main()`。 #### 五、扩展功能 `webapp`框架除了基本的HTTP请求处理外,还...

    GAE入门教程

    pass之GAE入门教程, 学习GAE

    关于GAE的教程、工具与文档(建站)

    **谷歌应用引擎(Google App Engine, GAE)**是谷歌提供的一种云计算平台,允许开发者构建、部署和运行基于Web的应用程序。GAE支持多种编程语言,包括Python、Java、Go、Node.js等,提供了完整的基础设施,如数据库...

    GAE编程指南

    《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...

    GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法

    5. **查看应用状态**:成功创建应用后,可以通过GAE管理界面查看应用的基本信息和统计数据。此时由于尚未部署任何应用,因此会显示“无版本部署”的提示。 #### 搭建开发环境 1. **安装Python**:由于GAE支持...

    基于Google App Engine(GAE)的Java和GWT应用开发

    基于Google App Engine(GAE)的Java和GWT应用开发_Google App Engine Java and GWT Application Development Nov.2010

    GAE扩展样例程序

    综合以上,这个项目为GAE开发者提供了一整套的工具和示例,包括了对EGL语言的增强以及对开发流程的支持,旨在简化GAE应用的开发过程,并促进开发者创建出更高效、更符合GAE特性的应用程序。通过深入研究这个样例程序...

    GAE read rss send to 腾讯微博

    标题“GAE read rss send to 腾讯微博”指的是一个使用Google App Engine(GAE)平台开发的应用程序,该程序的功能是从RSS源读取数据并将其发布到腾讯微博。RSS(Really Simple Syndication)是一种内容聚合格式,常...

    让gae支持php的方法

    5. **测试运行**:部署完成后,你可以访问应用的URL来测试PHP是否正常工作。如果一切配置正确,Quercus应该能够解析和执行你的PHP代码。 在标签中提到的"java"和"php",表明了这个过程涉及到两种编程语言的结合。...

Global site tag (gtag.js) - Google Analytics