问题 Google App Engine modifyThreadGroup问题


我正在使用Google App Engine处理Paypal IPN消息,当我的servlet启动时,我使用以下行开始另一个流程来处理按摩:

public class PayPal_Monitor_Servlet extends HttpServlet
{
  PayPal_Message_To_License_File_Worker PayPal_message_to_license_file_worker;

  public void init(ServletConfig config) throws ServletException               // Initializes the servlet.
  {
    super.init(config);
    PayPal_message_to_license_file_worker=new PayPal_Message_To_License_File_Worker();
   }

  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException
  {
  }

...
}

public class PayPal_Message_To_License_File_Worker implements Runnable
{
  static Thread PayPal_Message_To_License_File_Thread;
...

  PayPal_Message_To_License_File_Worker()
  {
    start();
  }

  void start()
  {
    if (PayPal_Message_To_License_File_Thread==null)
    {
      PayPal_Message_To_License_File_Thread=new Thread(this);
      PayPal_Message_To_License_File_Thread.setPriority(Thread.MIN_PRIORITY);
      PayPal_Message_To_License_File_Thread.start();
    }
...
  }

但是“PayPal_Message_To_License_File_Thread = new Thread(this);”导致以下错误:

javax.servlet.ServletContext log: unavailable
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)

为什么,如何修复它?

坦率


4926
2018-04-25 15:54


起源



答案:


你不能在GAE中使用Threads。这是一个列表 在GAE你不能做的事情

如果您想异步执行某些操作,请查看TaskQueues。


14
2018-04-25 16:02



2012年底更新:您可以在App Engine上使用线程,但有一些限制: developers.google.com/appengine/docs/java/runtime#The_Sandbox - Andrei Volgin


答案:


你不能在GAE中使用Threads。这是一个列表 在GAE你不能做的事情

如果您想异步执行某些操作,请查看TaskQueues。


14
2018-04-25 16:02



2012年底更新:您可以在App Engine上使用线程,但有一些限制: developers.google.com/appengine/docs/java/runtime#The_Sandbox - Andrei Volgin


你应该使用树脂4.0.22或更低。关于 http://forum.caucho.com/showthread.php?t=28521


0
2017-07-05 19:41