小编Bre*_*dan的帖子

JBoss AS 7:通过代码配置将Servlet映射到Context Root("/")

使用JBoss AS 7,我正在尝试使用Java代码而不是web.xml来配置我的Servlet 3.0容器.我的问题是,当我注册一个映射到上下文根("/")的Servlet时,默认的servlet优先使用并处理请求.我已经尝试过ServletContextListener和ServletContainerInitializer,但没有运气.

尝试1:ServletContextListener

@WebListener
public class AppInitializer implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        ServletContext context = event.getServletContext();

        ServletRegistration.Dynamic homeServlet = context.addServlet("homeServlet", new HomeServlet());
        homeServlet.addMapping("/");
        homeServlet.setLoadOnStartup(1);
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // Do nothing.
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试2:ServletContainerInitializer

public class AppInitializer2 implements ServletContainerInitializer {

    @Override
    public void onStartup(Set<Class<?>> classes, ServletContext context) throws ServletException {
        ServletRegistration.Dynamic homeServlet = context.addServlet("homeServlet", new HomeServlet());
        homeServlet.addMapping("/");
        homeServlet.setLoadOnStartup(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

附加信息

  • 如果我将映射更改//example,我的Servlet会正确处理对新路径的请求.
  • 如果我/通过web.xml而不是Java代码注册我的Servlet ,我的Servlet正确处理对上下文根的请求.

那么......我怎样才能通过Java代码将Servlet注册到上下文根目录而不被DefaultServlet覆盖? …

java servlets java-ee jboss7.x

5
推荐指数
1
解决办法
1543
查看次数

标签 统计

java ×1

java-ee ×1

jboss7.x ×1

servlets ×1