gpt4 book ai didi

java - 使用 ManagedExecutorService 时无法在 Wildfly 11 上部署

转载 作者:行者123 更新时间:2023-12-01 19:57:32 25 4
gpt4 key购买 nike

我正在尝试学习如何在 wildfy 11 上使用托管执行程序服务,但是当我部署应用程序时,出现以下错误:

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

"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)

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

引用它的代码非常简单

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");
}
}

最佳答案

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

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

或者直接将其省略以获取默认资源:

@Resource
private ManagedExecutorService mes;

关于java - 使用 ManagedExecutorService 时无法在 Wildfly 11 上部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com