Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提交工作程序上的RejectedExecutionException_Java_Multithreading_Exception_Submit - Fatal编程技术网

Java 提交工作程序上的RejectedExecutionException

Java 提交工作程序上的RejectedExecutionException,java,multithreading,exception,submit,Java,Multithreading,Exception,Submit,我开始发现WebLogic10.3.4中部署的webservice出现问题。在这个Web服务中,我创建了一个新的可调用类来处理命令: public class CommandById implements Callable<DataBean> { private String docId = null; private String folder = null; public CommandById(final String docId, final String

我开始发现WebLogic10.3.4中部署的webservice出现问题。在这个Web服务中,我创建了一个新的可调用类来处理命令:

public class CommandById implements Callable<DataBean> {
   private String docId = null;
   private String folder = null;

   public CommandById(final String docId, final String folder) {
      this.docId = docId;
      this.folder = folder;
   }

   @Override
   public DataBean call() throws Exception {
      // Do something with docId and folder
   }
}
有些东西不见了。 如果超过了允许的最大线程数(多少线程数是
NTHREADS
),您可以获得
RejectedExecutionException
)?或者如果线程池处于关闭过程中。
您总是使用相同的线程池吗?如果是这样,finally块中的
executor.shutdown()
可以解释这一点。

谢谢!
executor.shutdown()
是问题所在。我删除了最后一块,一切都很好。
ExecutorService executor = Executors.newFixedThreadPool(NTHREADS);
Callable<DataBean> worker = new CommandById(docId,folder);
Future<DataBean> submit = executor.submit(worker);
DataBean doc = null;
try {
   doc = submit.get();
} catch (InterruptedException e) {
   e.printStackTrace();
} catch (ExecutionException e) {
   e.printStackTrace();
} finally {
   executor.shutdown();
}
Error: [ServletContext@1747534847[app:BancoChile-Url module:reports path:/reports spec-version:2.5]] Servlet failed with Exception
cl.xxx.yyy.Exception: java.util.concurrent.RejectedExecutionException
        at cl.xxx.yyy.servlet.Worker.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
Caused by: java.util.concurrent.RejectedExecutionException
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1774)
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:768)
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:656)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92)
        at cl.xxx.yyy.zzz.aaa.getDocument(aaa.java:252)
        at cl.xxx.yyy.bbb.processId(bbb.java:941)
        at cl.xxx.yyy.zzz.getResultsById(zzz.java:692)
        at cl.xxx.yyy.zzz.getResults(zzz.java:384)
        ... 16 more