Вам необходимо удалить ссылку WorkManager из вашего weblogic-ejb-jar.xml , это восстановление должно перейти к ejb-jar.xml .
Infact Я сомневаюсь, что если определение схемы Weblogic "weblogic-ejb-jar.xsd" позволит вам добавить ссылочный элемент, вы должны получать ошибки проверки xsd.
в любом случае, избавься от стихии
описание ресурса из weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>TestBean</ejb-name>
<resource-description>
<res-ref-name>myWorkManager</res-ref-name>
<jndi-name>wm/myWorkManager</jndi-name>
</resource-description>
</weblogic-enterprise-bean>
это будет выглядеть так
WebLogic-jar.xml-EJB
<weblogic-enterprise-bean>
<ejb-name>TestBean</ejb-name>
</weblogic-enterprise-bean>
Ваша ссылка на WorkManager будет идти в ejb-jar.xml следующим образом.
EJB-jar.xml
<enterprise-beans>
<session>
<ejb-name>TestBean</ejb-name>
<ejb-class>com.xxx.TestBean</ejb-class> <!-- your package com.xxx-->
<resource-ref>
<res-ref-name>myWorkManager</res-ref-name>
<res-type>commonj.work.WorkManager</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
Теперь, чтобы получить WorkManager от JNDI, я делаю
InitialContext ctx = new InitialContext();
this.workManager = (WorkManager) ctx.lookup("java:comp/env/myWorkManager");
но я верю, что аннотация будет работать одинаково хорошо.
@Resource(name = "myWorkManager")
my weblogic-application.xml выглядит так же, как указано выше
<weblogic>
<work-manager>
<name>myWorkManager</name>
<ignore-stuck-threads>1</ignore-stuck-threads>
</work-manager>
Это работает для меня .. дайте мне знать, если нужно, я могу поделиться своим полным кодом.
вы можете просмотреть ваш WorkManager и загрузить его, перейдя в консоль администратора Weblogic
Домашняя страница—> Развертывания—> yourApp—> Мониторинг (вкладка) -> WorkLoad (вкладка) ”