我试图了解在什么条件下destroySubContext
在Tomcat中失败。我正试图销毁我创建的Context
,因此下次启动该服务时将无法createContext
。我的代码如下:
private Context srvCtx;
public void init(ServletConfig servletconfig) throws ServletException {
super.init(servletconfig);
Context initCtx = new InitialContext();
srvCtx = initCtx.createSubcontext("myapp");
}
public void destroy()
{
try
{
if (srvCtx != null)
{
srvCtx.destroySubcontext("myapp");
srvCtx.close();
}
}
catch(NamingException e)
{
log_.error(new LogQueueMessageStructure("Couldn't unbind the context",3016),e);
}
}
我的代码有什么问题,如何调试此问题?
最佳答案
您正在将上下文创建为initCtx
的子上下文:
srvCtx = initCtx.createSubcontext("myapp");
但是,当销毁它时,似乎要破坏它作为
srvCtx
的子上下文。srvCtx.destroySubcontext("myapp");
myapp上下文不是
srvCtx
的子上下文,而是initCtx
的子上下文。它应该更好地与initCtx.destroySubcontext("myapp");