我试图重新包装一个相对较大的Java Webapp,但我没有编写代码,并且该项目的配置丢失了。
我设置了第一个包装,并将其部署在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.
        }
    
    }
    

    07-24 14:56