2010-04-25 17 views
11

Ich verwende Google App Engine Paypal IPN-Nachrichten zu verarbeiten, wenn mein Servlet beginnt ich die folgenden Zeilen verwenden Sie einen anderen Prozess zu starten Massagen zu verarbeiten:Google App Engine modifyThreadGroup Problem

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(); 
    } 
... 
    } 

Aber „PayPal_Message_To_License_File_Thread = new Gewinde (das); " verursacht den folgenden Fehler:

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) 

Warum, wie es zu beheben?

Frank

Antwort

14

Sie können keine Threads in GAE verwenden. Hier ist eine Liste von things you cannot do in GAE:

Wenn Sie etwas asynchron tun möchten, schauen Sie in TaskQueues.

+3

Ende 2012 Update: Sie können Threads auf App Engine verwenden, aber mit einigen Einschränkungen: https://developers.google.com/appengine/docs/java/runtime#The_Sandbox –