Я перевожу действительно огромное Websphere 9
приложение на Tomcat 9
.
Все в приложении работает нормально, кроме одной вещи.
Приложение использовало WorkManagerTaskExecutor
через проводной бин:
@Bean
public WorkManagerTaskExecutor taskExecutor() {
WorkManagerTaskExecutor pool = new WorkManagerTaskExecutor();
pool.setWorkManagerName("someName");
//pool.setResourceRef(true);
return pool;
}
В Websphere, вероятно, был настроен некоторый ресурс через консоль управления.
В Tomcat
я создал Resource
в server.xml
:
<Resource name = "someName"
auth = "Container"
type = "commonj.work.WorkManager"
factory = "de.myfoo.commonj.work.FooWorkManagerFactory"
minThreads = "1"
maxThreads = "25" />
и ссылка в context.xml
:
<ResourceLink name="someName" global="someName" type="commonj.work.WorkManager" />
и ошибка:
javax.naming.NameNotFoundException: имя [someName] не связано в
этот контекст.
Теперь, если я включу эту строку:
pool.setResourceRef(true);
Работает отлично, но я не хочу вносить какие-либо изменения в код.
Я уже пытался переименовать обе переменные .xml конфигов в JNDI-стиль, потому что Документация JndiLocatorSupport говорит:
If the name doesn't begin with "java:comp/env/", this prefix is added if "resourceRef" is set to "true".
Но name="java:comp/env/someName"
тоже не работает.
Возможно ли это даже преодолеть? Какое имя должно быть?