Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Appengine模块:如何将错误处理程序路由到非默认模块?_Java_Python_Google App Engine_Module_Gae Module - Fatal编程技术网

Java Appengine模块:如何将错误处理程序路由到非默认模块?

Java Appengine模块:如何将错误处理程序路由到非默认模块?,java,python,google-app-engine,module,gae-module,Java,Python,Google App Engine,Module,Gae Module,我指的是文档中描述的Google Appengine的设置自定义错误响应,特别是以下代码: error_handlers - error_code: default file: default_error.html - error_code: over_quota file: over_quota.html 目前,我正在运行一个应用程序,将代码放在单独的模块中,其中python作为app.yaml中配置的默认模块运行。其他模块的运行时采用php和java,通过

我指的是文档中描述的Google Appengine的设置自定义错误响应,特别是以下代码:

error_handlers  
- error_code: default  
  file: default_error.html   

- error_code: over_quota   
  file: over_quota.html  
目前,我正在运行一个应用程序,将代码放在单独的模块中,其中python作为app.yaml中配置的默认模块运行。其他模块的运行时采用php和java,通过以下方式同时运行:

application: app-id
dispatch:
# Send favicon to default module - python
- url: "*/favicon.ico"
  module: default

# Send script to java module
- url: "*/scripts/*"
  module: javamodule

# Send others to php module
- url: "*/*"
  module: phpmodule
一切似乎都按预期进行,但我需要知道我在这里遗漏了什么,因为我在app.yaml中放置了上述错误处理程序,但在未找到的页面(错误代码:404)上没有显示默认的错误处理程序,也没有在over quota上显示over quota.html(错误代码:503)


我把它们也放在其他模块中,也没有响应。我还确保错误响应文件的路径不会与静态文件处理程序路径重叠,并且两个html文件的大小都小于10 KB。

我偶然发现了一种方法来解决我在Google AppEngine中应用程序的错误路由问题

根据我提出的要求,使用新名称部署我的模块,并重新安排和更新disptach.yaml上的模块名称和文档流,因此如下所示:

dispatch:
# Send styles to python module (default module)
- url: "*/styles/*"
  module: default

# Send script to java module
- url: "*/scripts/*"
  module: javamodule

# Send images to go module
- url: "*/images/*"
  module: gomodule

# Send others to php module
- url: "*/*"
  module: newphpmodule
我得出了一个结论,更改模块名称后会发生什么,导致错误路由工作,应用程序现在显示over_quota.htmlon over quota(错误代码503)

对于错误代码404,我同意上面Mars的评论,即我将使用一个简单的处理程序来生成自定义错误页面

它还确保错误响应文件的路径不与模块yaml文件中的静态文件处理程序路径重叠。因此,如果您的错误页面是html,那么指向错误页面的每个处理程序都必须是未注释的,如下所示:

#- url: /(.*\.(htm|html))$
#  mime_type: text/html
#  static_files: \1
#  upload: (.*\.(htm|html))$
此外,如果我们已经决定将设置为超配额。如果出现超配额,则可以显示html,这是否是一种方便的方式,让用户或访问者知道网站何时将恢复在线

我已将我的应用程序账单设置为每日类型,因此它将在午夜时间以及我的每日配额重置为零。我得到了一个代码,可以使用javascript(无需jquery)计算从世界各地的用户本地时间到服务器午夜的时间,如下所示:

<span id="timer"></span>
<script>
var t=document.getElementById("timer"), wd=window||document, d=new Date(), md=new Date(); 
var tzone=md.getTimezoneOffset()/60; //get visitor timezone, (server timezone is -7,0)
md.setHours(24-(tzone-7)); md.setMinutes(0); md.setSeconds(0); md.setMilliseconds(0);
var dif=((md.getTime()-d.getTime())/1000);
var timer=setInterval(counter, 1000);
function counter(){
    dif=dif-1; var h=Math.floor(dif/3600%24), m=Math.floor((dif%3600)/60), s=Math.floor(dif%60);
    if(h>10){clearInterval(timer); t.innerHTML="0:00:00"; wd.location.reload(true);}
    else{t.innerHTML=h+":"+(m<10?'0'+m:m)+":"+(s<10?'0'+s:s);}
}
</script>

var t=document.getElementById(“计时器”),wd=window | | document,d=new Date(),md=new Date();
var tzone=md.getTimezoneOffset()/60//获取访客时区(服务器时区为-7,0)
md.setHours(24-(tzone-7));md.setMinutes(0);md.setSeconds(0);md.setms(0);
var dif=((md.getTime()-d.getTime())/1000);
var定时器=设置间隔(计数器,1000);
函数计数器(){
dif=dif-1;var h=Math.floor(dif/3600%24),m=Math.floor((dif%3600)/60),s=Math.floor(dif%60);
如果(h>10){clearInterval(timer);t.innerHTML=“0:00:00”;wd.location.reload(true);}

else{t.innerHTML=h+”:“+(m404不是受支持的错误之一。因此,您可以使用简单的处理程序生成自定义错误页。对于503,您是否在日志中看到相应的条目?我记得有一条消息日志说,由于超出服务限制而出现问题。我一直在尝试在日志中搜索,但不知道如何找到它。这是overquo时的日志ta(错误代码503):11:39:06.899 503 970 B 17ms/208.122.6.102---[18/Nov/2014:20:39:06-0800]“GET/HTTP/1.1”503 970-“FreeWebMonitoring SiteChecker/0.2(+)”tophyips.info“ms=17 cpu\U ms=0 cpm\U usd=0.000108应用程序引擎发布=1.9.16