是否有一种简单的方法可以更改Tomcat为其工作线程提供的默认名称?理想情况下,我希望与某个Web应用程序关联的所有线程都在其名称中包含它,可能作为前缀。例如,如果我部署app1.war和app2.war,我希望app1的所有主题都在其名称中包含 app1 。
答案 0 :(得分:2)
从a forum开始,在这里重新发布了更好的格式;一个简单的filter,它将每个线程重命名为请求URI,在本例中为:
public class ThreadNameFilter implements javax.servlet.Filter {
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest)req;
final Thread curThr = Thread.currentThread();
final String oldName = curThr.getName();
// change the name of the current thread to something related
// to the application (e.g. URI)
try {
curThr.setName(httpReq.getRequestURI());
fc.doFilter(req, resp);
} finally {
curThr.setName(oldName);
}
}
}
答案 1 :(得分:0)
线程只与某个特定的webapp临时“关联”。
我无法想象为什么这会是有用的东西: