【问题标题】:Replace web.xml in Vaadin替换 Vaadin 中的 web.xml
【发布时间】:2014-07-29 09:07:53
【问题描述】:

我使用 Vaadin 7。我想更改我的应用程序中的默认 Servlet。我所做的是以下内容:

public class MyVaadinApplication extends UI {

  @WebServlet(urlPatterns = "/*", asyncSupported = true)
  @VaadinServletConfiguration(productionMode = true, ui = MyVaadinApplication.class)
  public static class Servlet extends VaadinServlet {

   @Override
    public void init(ServletConfig servletConfig) throws ServletException {

      super.init(servletConfig);

      /*
       * Vaadin SessionListener
       */
       getService().addSessionInitListener(new VaadinSessionListener.VaadinSessionInitListener());
       getService().addSessionDestroyListener(new VaadinSessionListener.VaadinSessionDestroyListener());
     }
    }
  ....

它不考虑新的 servlet。我试图删除 Web.xml,但出现错误。 如何替换 web.xml 中的 Servlet?

【问题讨论】:

    标签: servlets vaadin web.xml


    【解决方案1】:

    您应该首先决定您的项目使用哪个 Servlet 版本。

    如果您想使用@WebServlet 注解,您应该使用 Servlet 3.0 版配置您的项目。

    在Eclipse下Project->Properties->Project Facets->Dynamic Web Module->3.0

    否则您必须将“Servlet”类添加到您的 web.xml。

    vaadin的书里有描述如何配置web.xml(查看4.8.4章节)

    https://vaadin.com/book/-/page/application.environment.html

    【讨论】:

    • 我已经将属性设置为动态 Web 模块->3.0。而且我有一个配置良好的 web.xml。但我不知道如何使用 web.xml 我想在我的 UI 中设置 Servlet。
    • 您是否检查过 Servlet.init() 方法中的代码是否正在执行?
    • 不,它没有被执行,似乎我的 UI 忽略了Servlet 内部类。
    • 如果您使用的是 maven,则应该在创建项目时在 UI 中生成 servlet 代码。如果您手动插入它,您可能做错了什么。如果可以,请将 UI 类的整个代码粘贴到某处。我可以看看。
    • 您的 web.xml 中有什么。如果我没记错的话,如果您在 web.xml 和注释中定义了相同的选项,那么 web.xml 优先。查看 web.xml 中是否有 servlet,然后尝试删除该部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2014-06-23
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多