2015-03-31 69 views
3

我正在使用Vaadin 7.4和Spring一起使用“spring4vaadin” - Project。我正在使用Servlet API 3.0在Tomcat 7.0.29上部署应用程序。Vaadin 7.4,Spring,Tomcat 7,使用@WebServlet更改上下文根

我部署的Tomcat的根语境下的应用程序(“/”)和我正在使用@ WebServlet的注释设置应用到“/ ESB/*”的实际情境:

@WebServlet(value = "/esb/*" , asyncSupported = true) 
public static class Servlet extends SpringVaadinServlet { 
每次,当我浏览到App-URL“ http://localhost:8080/esb/”我得到错误信息时

}

但是:“无法加载引导的javascript ./../VAADIN/vaadinBootstrap.js?v=7.4。 0“在Vaadin的浏览器弹出窗口中。

通过web.xml文件看起来是这样的:

<web-app id="ESAB_Cutting_Prototyping" version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" 
    metadata-complete="false"> 
</web-app> 

如果我设置在我的IntelliJ IDE的Tomcat的部署,配置它的工作没有任何问题的情况下。

我不知道该怎么办 - 任何帮助,非常感谢。

+0

我做了一些使用Chrome的开发工具的研究。 即使我已经设定的servlet上下文编程方式使用如下注解: @WebServlet(值= “/ ESB/*”,asyncSupported = TRUE) 上下文根 “/ ESB” 不同,Vaadin仍然尝试从 加载WidgetSet的URL“http:// localhost:8080/VAADIN/vaadinBootstrap.js?v = 7.4.0”,这是错误的。 – 2015-03-31 11:50:35

回答

2

好的 - 我解决了它。

我的问题是,我只有这样做:

@WebServlet(value = "/esb/*" , asyncSupported = true) 

但让它工作,我不得不这样做:

@WebServlet(urlPatterns = { "/esb/*" , "/VAADIN/*" } , asyncSupported = true) 

所以servlet将听:

http://localhost:8080/esb/ 

以及来自Vaadin-Framework的后续请求:

http://localhost:8080/VAADIN/... 

其中包括Bootstrap-Code和Widget本身。