首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ManagedExecutorService时无法在wildfly 11上部署

使用ManagedExecutorService时无法在wildfly 11上部署
EN

Stack Overflow用户
提问于 2018-03-03 06:08:21
回答 1查看 840关注 0票数 0

我正在尝试学习如何在wildfy 11上使用托管Executor服务,但是当我部署我的应用程序时,我得到了以下错误:

10:28:34,185部署错误:WFLYCTL0013(“org.jboss.as.controller.management-operation”)操作失败-地址:(("deployment“=> "crowbar-server.war")) -失败描述:{

代码语言:javascript
复制
"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.crowbar-server.crowbar-server.env.jboss.ee.concurrency.executor.default"],

"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.crowbar-server.crowbar-server.env.\"com.ticomgeo.crowbar.server.ejb.ManagedExecutorExample\".mes is missing [jboss.naming.context.java.module.crowbar-server.crowbar-server.env.jboss.ee.concurrency.executor.default]"]

}

如果这是一个愚蠢的问题,我提前道歉,但我对wildfly和JEE是全新的。

执行器在standalone.xml中定义。(我必须去掉尖括号,否则它不会显示,不知道如何转义XML)

代码语言:javascript
复制
subsystem xmlns="urn:jboss:domain:ee:4.0"
        spec-descriptor-property-replacement>false</spec-descriptor-property-replacement
        concurrent
            context-services
                context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/
            /context-services
            managed-thread-factories
                managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/
            /managed-thread-factories
            managed-executor-services
                managed-executor-service
                      name="default"
                      jndi-name="java:jboss/ee/concurrency/executor/default"
                      context-service="default"
                      hung-task-threshold="60000"
                      keepalive-time="5000"/>
            /managed-executor-services
            managed-scheduled-executor-services
                managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/
            /managed-scheduled-executor-services
        /concurrent

引用它的代码非常简单

代码语言:javascript
复制
package com.ticomgeo.crowbar.server.ejb;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.enterprise.concurrent.ManagedExecutorService;

@Singleton(name = "ManagedExecutorExample")
public class ManagedExecutorExample {

  @Resource(lookup = "jboss/ee/concurrency/executor/default")
   private ManagedExecutorService mes;

 public void testMe(int secsToSleep){
   mes.submit(new TestClass());
   System.out.println("Submitted test class");
 }

private class TestClass implements Runnable{
public void run(){
  System.out.println("Running runable");
  try {
      Thread.sleep(10000);
   }catch(Exception e){
  }
  System.out.println("Done Sleeping");
}
}
EN

回答 1

Stack Overflow用户

发布于 2018-03-04 04:39:47

请尝试使用完整的JNDI名称:

代码语言:javascript
复制
@Resource(lookup = "java:jboss/ee/concurrency/executor/default")
private ManagedExecutorService mes;

或者干脆省略它来获取默认资源:

代码语言:javascript
复制
@Resource
private ManagedExecutorService mes;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49078126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档