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