Сопоставление обычного рабочего менеджера с weblogic рабочим менеджером завершается неудачей с помощью NameNotFoundException
У меня есть (weblogic) одноэлементная служба, которая использует commonj workManagerTaskExecutor для выполнения задачи. У меня также есть менеджер работы, определенный в моей консоли weblogic с именем MyWorkManager. Теперь я пытаюсь сопоставить менеджер работы commonj с менеджером работы в Weblogic, чтобы я мог использовать его в workManagerTaskExecutor. Но поиск этого рабочего менеджера завершается неудачно в коде моего приложения, так как NameNotFoundException не может найти рабочий менеджер.
Я попытался перебрать исходный объект контекста и не смог найти зарегистрированный в нем рабочий менеджер.
Я использую Weblogic 10.3 и совершенно новый для этого. Что я делаю неправильно? пожалуйста, помогите мне.
public class MySingletonService implements weblogic.cluster.singleton.SingletonService {
private ApplicationContext applicationContext;
private void loadApplicationContext() {
applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
}
public MySingletonService() {
System.out.println("MySingletonService Object Initialized...");
}
public void activate() {
try {
loadApplicationContext();
Runnable xy = new Runnable() {
public void run() {
if (applicationContext != null) {
runSomething();
} else {
System.out.println("Application context is not initialized");
}
}
};
InitialContext ic = new InitialContext();
WorkManager wm = (WorkManager)ic.lookup("java:comp/env/wm/MyWorkManager"); // this fails
WorkManagerTaskExecutor taskExecutor = new WorkManagerTaskExecutor();
taskExecutor.setWorkManager(wm);
taskExecutor.execute(xy);
}
catch (Exception ex) {
ex.printStackTrace();
deactivate();
throw new RuntimeException("MySingletonService.activate()",ex);
}
}
public void deactivate() {
doSomething();
}
}
WebLogic-application.xml
<work-manager>
<name>wm/MyWorkManager</name>
</work-manager>
web.xml
<resource-ref>
<res-ref-name>wm/MyWorkManager</res-ref-name>
<res-type>commonj.work.WorkManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>