2014-07-22 29 views
0

我有一個以'* .htm'擴展名運行的spring項目,我們已將它綁定到web.xml文件中。Stomp.js和Spring WebSocket與Web MVC項目的集成

<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 

現在我想春天的WebSocket和踢踏JS的聊天應用程序集成,但這裏的問題是stomp.js發送不含「的.htm」 extenstion請求到服務器。 由於我在每個請求(信息或其他xhr)中收到404錯誤。

有沒有什麼辦法讓Spring WebSocket和stomp js擴展名爲'.htm'?

我無法刪除此擴展名,它會拖累我目前的應用程序。

回答

0

您可以添加多個Servlet映射這樣的,並保持與名爲.htm「/ URL」服務的新功能的工作

​​

如果你正在使用的Servlet 2.5,你可以直接使用

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 
1

在websocket網址中添加前綴,效果很好。

JS:

var socket = new SockJS("/websocket_demo/myapp/ws"); 

的web.xml DispatchServlet映射:

<servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/myapp/*</url-pattern> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping>