Jaspreet Singh
Jaspreet Singh

Reputation: 105

Stomp.js and Spring WebSocket integration with Web MVC project

I am having one spring project which is running with '*.htm' extension , we have bind it in web.xml file.

 <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>

Now I want to integrate the Spring WebSocket and stomp js for the chat application, but the problem here is stomp.js is sending the request to the server without '.htm' extenstion. due to which I am getting 404 error in each request (info or other xhr).

Is there any way to enable the Spring WebSocket and stomp js with '.htm' extension ?

I can't remove this extension it will hault my current application.

Upvotes: 0

Views: 684

Answers (2)

周宜勤
周宜勤

Reputation: 11

add prefix in the websocket url,it works well.

js:

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

web.xml DispatchServlet mapping:

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

Upvotes: 1

apurvc
apurvc

Reputation: 750

You can add multiple servlet-mapping like this and keep the .htm working with "/url" serving for new functionality

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

if you are using Servlet 2.5 you can directly use

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

Upvotes: 0

Related Questions