2015-03-31 32 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本身。

相關問題