2011-04-14 2 views
1

J'ai un morceau de code qui doit indiquer à mon servlet de faire un traitement. Mon code ne s'attend pas à récupérer quoi que ce soit de la servlet. Son travail consiste à informer le servlet que la servlet doit effectuer un traitement. Ce qui doit être traité, comment il doit être traité fait partie de l'URL, par exemple: http://myserver:port/myservlet/something.do?param1=param1value&param2=param2value ...Question liée à la publication http Java

Mais je ne veux pas que mon code attende une réponse de la servlet. Mon code devrait passer à autre chose. Actuellement, je vois que mon code fait une requête et attend que la servlet envoie une réponse avant de passer à la prochaine requête http. Le multithreading est une option mais existe-t-il une autre option que celle-ci?

+2

Vous pouvez utiliser JMS. – Pushkar

Répondre

5

L'appel à la servlet est bloquant. Il n'y a pas grand-chose que vous puissiez faire, sauf exécuter le processus dans un fil séparé. Par exemple:

ExecutorService executor = Executors.newSingleThreadExecutor(); 
// NON BLOCKING CALL 
executor.submit(new Runnable() { 
       @Override 
       public void run() { 

        callTheServlet(); 
       } 
      }); 
executor.shutdown();