程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了GWT,Google App Engine,TimerTask或ServiceImpl中的线程抛出异常大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决GWT,Google App ENGIne,TimerTask或serviceImpl中的线程抛出异常?

开发过程中遇到GWT,Google App ENGIne,TimerTask或serviceImpl中的线程抛出异常的问题如何解决?下面主要结合日常开发的经验,给出你关于GWT,Google App ENGIne,TimerTask或serviceImpl中的线程抛出异常的解决方法建议,希望对你解决GWT,Google App ENGIne,TimerTask或serviceImpl中的线程抛出异常有所启发或帮助;

您不能使用java.util.Timer,因为它会创建一个普通线程,这在AppENGIne中是不允许的。但是,您可以使用AppENGIne Modules API的BACkground线程功能,如此处所述:https ://developers.google.com/appENGIne/docs/java/modules/#Java_BACkground_threads

请注意,您只能在手动缩放的实例上使用后台线程。在此示例中,后台线程永远每30秒打印一次消息:

Thread thread = ThreadManager.createBACkgroundThread(new Runnable() {
  public voID run() {
    try {
      while (true) {
        System.err.println("Doing something!");
        Thread.sleep(30_000);
      }
    } catch (InterruptedException eX) {
    }
  }
});
thread.start();

解决方法

我正在使用GWT和Google App ENGIne。我有很多记录,我想每30分钟更新一次。在 serviceImpl中, 我有以下代码:

new Timer().schedule(new TimerTask(){
    @Override
    public void run() {
        try {
            Thread.sleep(30000);
        } catch (InterruptedException E) {
            e.printStackTrace();
        }
        result = updateFeeds();
    }
},30000,Long.max_value);

当我运行应用程序以及何时获得:

com.google.gwt.user.server.rpc.UnexpectedException:
service method 'public abstract java.util.List org.joke.planet.client.Feedservice.loadFeeds()' threw an unexpected exception:
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)

在第一行或粘贴的代码处。

我的问题是,我如何才能使可以在GWT + AppENGIne service中工作的后台工作者?

大佬总结

以上是大佬教程为你收集整理的GWT,Google App Engine,TimerTask或ServiceImpl中的线程抛出异常全部内容,希望文章能够帮你解决GWT,Google App Engine,TimerTask或ServiceImpl中的线程抛出异常所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。