Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列出java webapp中的servlet(在tomcat中运行)_Java_Tomcat_Servlets_Gwt - Fatal编程技术网

列出java webapp中的servlet(在tomcat中运行)

列出java webapp中的servlet(在tomcat中运行),java,tomcat,servlets,gwt,Java,Tomcat,Servlets,Gwt,我正在尝试重新打包一个相对较大的JavaWebApp,我没有对其进行编码,项目配置也丢失了。 我设置了第一个打包,并在tomcat中部署了它。现在为了理解它,我想获得一个成功启动或失败的servlet列表,以及相应的访问url 有没有办法得到这个列表(可能是从一些启动日志中) 一些细节:webapp使用gwt(我不太熟悉),我在ubuntu上使用tomcat7。如果可行的话,我并不反对使用另一个servlet容器的解决方案。我会编写一个简单的JSP或ServletContextListene

我正在尝试重新打包一个相对较大的JavaWebApp,我没有对其进行编码,项目配置也丢失了。 我设置了第一个打包,并在tomcat中部署了它。现在为了理解它,我想获得一个成功启动或失败的servlet列表,以及相应的访问url

  • 有没有办法得到这个列表(可能是从一些启动日志中)

一些细节:webapp使用gwt(我不太熟悉),我在ubuntu上使用tomcat7。如果可行的话,我并不反对使用另一个servlet容器的解决方案。

我会编写一个简单的
JSP或ServletContextListener
来读取servlet上下文中的所有
servletRegistrations

因此,您的JSP/ServletContextListener将从中读取数据

servletContext.getServletRegistrations();
然后把它展示出来

编辑
@WebServlet(urlPatterns=“/mappings”)
公共类TestServlet扩展了HttpServlet{
私有静态最终长serialVersionUID=-7256602549310759826L;
@凌驾
受保护的无效数据集(HttpServletRequest-req、HttpServletResponse-resp)
抛出ServletException、IOException{
PrintWriter writer=resp.getWriter();
地图注册=req
.getServletContext().getServletRegistrations();
for(字符串键:registrations.keySet()){
ServletRegistration=registrations.get(key);
writer.write(“Name:+registration.getName());
write(“
映射:”); for(字符串映射:registration.getMappings()){ write.write(映射); } } //当然,您也可以将其写入日志或控制台,具体取决于您的 //要求。 } }
您能给我们更多关于web应用程序文件和目录树文件夹的描述吗?例如,您有web.xml吗?嗯,我不能共享web.xml内容,但它是一个相当标准的内容:一个欢迎文件,指向gwt生成的html文件、几个上下文参数和许多servlet和相应的servlet映射。我不确定的是,这些都在工作(一些gwt的东西我不知道),如果没有其他。至于项目结构,我尝试用maven和gwt插件maven打包webapp,使用默认结构(据我所知)然后你可能需要了解一些谷歌网络工具包web应用程序结构的基础知识,我不明白这个问题。我相信GWT与它完全无关,GWT与servlet并没有什么特别的关系。在web.xml中找到的url模式是您的“访问url”。但是servlets不会启动,所以我不知道您还想检查什么。也许要在应用程序中找到尚未在web.xml中映射到url模式的servlet类?我不熟悉jsp。您能否提供有关
ServletContextListener
方法的更多详细信息?我可以创建这样一个servlet,但是如何输出结果呢?注册的servlet是否都是servlet上下文应该加载的servlet,独立于它们的声明方式,如果它们加载失败的话?
@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.
    }

}