在Web.xml中我有:
<resource-ref>
<res-ref-name>java:/comp/env/tm/TimerManager</res-ref-name>
<res-type>commonj.timers.TimerManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>
在java代码中我有:
TimerManager tm = (TimerManager) ic.lookup("tm/TimerManager");
tm.schedule(new CleanupListener(), 0, 10*1000); // CleanupListener class is my TimerListener
因此,当我运行代码时,Timer会在代码崩溃后成功启动,但会出现以下异常:
javax.naming.ConfigurationException:NamingManager.getURLContext无法找到此方案的工厂:java
我不知道为什么。
当我用这个更改查找时:TimerManager tm = (TimerManager) ic.lookup("java:/comp/env/tm/TimerManager");
这甚至是最糟糕的,Timer永远不会启动,我确实有以下异常:
db.common.util.ServiceLocatorException:javax.naming.ConfigurationException:NamingManager.getURLContext无法找到此方案的工厂:java
请帮忙,非常重要。感谢
答案 0 :(得分:0)
尝试使用
java:comp/env/tm/TimerManager
取代
java:/comp/env/tm/TimerManager
如果这没有帮助。请发布完整的部署描述符和绑定文件(web.xml和ibm-web-bnd.xml或ibm-web-bnd.xmi),以确保此文件中的配置正确。
感谢发布文件。我认为问题是web.xml 3.0版与ibm-web-bnd.xmi不兼容。尝试使用web.xml 3.0版和ibm-web-bnd.xml,或者使用早期版本的web.xml和ibm-web-bnd.xmi。
答案 1 :(得分:0)
这是web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1263831088044">
<webapp href="WEB-INF/web.xml#WebApp_ID"/>
<resRefBindings xmi:id="ResourceRefBinding_1288099140976" jndiName="customs/commercial/tal/jms/ZZZZ_ZZ_ZZZZ_BUS_UPD">
<bindingResourceRef href="WEB-INF/web.xml#ResourceRef_1288099140976"/>
</resRefBindings>
</webappbnd:WebAppBinding>
这是ibm-web-bnd.xmi:
rpart
答案 2 :(得分:0)
您恢复了有效的语法。
在web.xml中:
ConnectionKeepAliveStrategy myStrategy = new ConnectionKeepAliveStrategy() {
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
//your strategy here..
}
};
CloseableHttpClient client = HttpClients.custom()
.setKeepAliveStrategy(myStrategy)
.build();
在源代码中:
import nltk
from nltk.corpus import sentiwordnet as swn
# Do this first, that'll do something eval()
# to "materialize" the LazyCorpusLoader
next(swn.all_senti_synsets())
# Your other code here.