在 java webapp 中列出 servlet(运行 在 tomcat 中)
List servlets in a java webapp (running in tomcat)
我正在尝试重新打包一个相对较大的 java 网络应用程序,我没有编写代码并且项目配置丢失了。
我设置了第一个包,并将其部署在 tomcat 中。现在理解它,我想获得启动成功或失败的 servlet 的列表,以及相应的访问权限 url.
- 有没有办法获取该列表(可能来自某些启动日志)?
一些细节:webapp 使用 gwt(我不掌握),我在 ubuntu 上使用 tomcat7。如果可行,我不反对使用另一个 servlet 容器的解决方案。
我会写一个简单的 JSP or ServletContextListener
从 servlet 上下文中读取所有 ServletRegistratioins
并显示它们。
所以你的 JSP/ServletContextListener 会从
读取数据
servletContext.getServletRegistrations();
并显示它。
编辑
@WebServlet(urlPatterns = "/mappings")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = -7256602549310759826L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
Map<String, ? extends ServletRegistration> registrations = req
.getServletContext().getServletRegistrations();
for (String key : registrations.keySet()) {
ServletRegistration registration = registrations.get(key);
writer.write("Name: " + registration.getName());
writer.write("<br>Mappings:");
for (String mapping : registration.getMappings()) {
writer.write(mapping);
}
}
// of course you can write that to log or console also depending on your
// requirement.
}
}
您可以在 Tomcat 中通过双击 Tomcat 并查看“模块”选项卡来查看已启动的模块和路径。
我正在尝试重新打包一个相对较大的 java 网络应用程序,我没有编写代码并且项目配置丢失了。 我设置了第一个包,并将其部署在 tomcat 中。现在理解它,我想获得启动成功或失败的 servlet 的列表,以及相应的访问权限 url.
- 有没有办法获取该列表(可能来自某些启动日志)?
一些细节:webapp 使用 gwt(我不掌握),我在 ubuntu 上使用 tomcat7。如果可行,我不反对使用另一个 servlet 容器的解决方案。
我会写一个简单的 JSP or ServletContextListener
从 servlet 上下文中读取所有 ServletRegistratioins
并显示它们。
所以你的 JSP/ServletContextListener 会从
读取数据servletContext.getServletRegistrations();
并显示它。
编辑
@WebServlet(urlPatterns = "/mappings")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = -7256602549310759826L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
Map<String, ? extends ServletRegistration> registrations = req
.getServletContext().getServletRegistrations();
for (String key : registrations.keySet()) {
ServletRegistration registration = registrations.get(key);
writer.write("Name: " + registration.getName());
writer.write("<br>Mappings:");
for (String mapping : registration.getMappings()) {
writer.write(mapping);
}
}
// of course you can write that to log or console also depending on your
// requirement.
}
}
您可以在 Tomcat 中通过双击 Tomcat 并查看“模块”选项卡来查看已启动的模块和路径。