有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

运行GWT/GAE应用程序时出现java时区错误

我在运行GWT/GAE应用程序时遇到此错误:

java.lang.RuntimeException: Unable to restore the previous TimeZone at com.google.appengine.tools.development.DevAppServerImpl.restoreLocalTimeZone(DevAppServerImpl.java:348) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:251) at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068) at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) at com.google.gwt.dev.DevMode.main(DevMode.java:311) Caused by: java.lang.NoSuchMethodException: java.util.TimeZone.setDefaultInAppContext(java.util.TimeZone) at java.lang.Class.getDeclaredMethod(Class.java:2117) at com.google.appengine.tools.development.DevAppServerImpl.restoreLocalTimeZone(DevAppServerImpl.java:344) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:251) at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068) at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) at com.google.gwt.dev.DevMode.main(DevMode.java:311)

虽然我添加了-Dappengine.user.timezone=UTC-Dappengine.user.timezone.impl=UTC


共 (3) 个答案

  1. # 1 楼答案

    当我将GAE版本从1.8.0更新到1.8.8+时,错误得到了修复

  2. # 2 楼答案

    如果你得到了java。JDK 8上的lang.NoSuchMethodException错误,很可能是这个bug https://github.com/GoogleCloudPlatform/gcloud-maven-plugin/issues/54

    这里讨论的解决方案是向appengine maven插件添加配置

                    <jvm_flag>
                        <jvm_flag>-Dappengine.user.timezone=UTC</jvm_flag>
                    </jvm_flag>
    

    在旧的解决方案中,将参数作为-D传递(也不能添加.impl)作为discuess

  3. # 3 楼答案

    试试这个

    TimeZone.setDefault(TimeZone.getTimeZone("GMT-05:00"));  
    

    例如,这是针对波哥大、利马、基多的。。你可以选择你的区域here