我有一个 vaadin 应用程序,我试图提供一些由 spring MVC 提供的 REST URL - 我的 web.xml 如下。我只在 /info 处收到 404 错误 - 看起来 Vaadin 窃取了所有 url 模式。
如果我删除 Vaadin,我可以访问 /info 并获取该网址的内容。如何让他们一起愉快地玩耍?
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<description>Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>Vaadin Application Servlet</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<!-- replace standard applicationServlet with the ICEpush one -->
<!--<servlet-class>org.vaadin.artur.icepush.ICEPushServlet</servlet-class>-->
<init-param>
<description>Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>myapp.vaadin.MyVaadinApp</param-value>
</init-param>
<init-param>
<param-name>widgetset</param-name>
<param-value>myapp.gwt.MyAppWidgetSet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>info</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>info</servlet-name>
<url-pattern>/info</url-pattern>
</servlet-mapping>
Vaadin servlet 的 url 模式是 /*,它是所有内容的通配符,以便 servlet 处理每个请求。一种选择是将 Vaadin servlet 的 url 缩小为比 /* 更具体的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)