我试图了解Tomcat在destroySubContext
失败的条件下。我正在尝试销毁我创建的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);
}
}
我的代码有什么问题,如何调试此问题?
答案 0 :(得分:1)
您正在创建上下文作为initCtx
:
srvCtx = initCtx.createSubcontext("myapp");
当你正在摧毁它时,似乎你试图将其作为srvCtx
的子上下文来摧毁它。
srvCtx.destroySubcontext("myapp");
myapp上下文不是srvCtx
的子上下文,它是initCtx
的子上下文。
initCtx.destroySubcontext("myapp");