0

「*.htm」拡張子で実行されている1つの春のプロジェクトがあります.web.xmlファイルにバインドしています。

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

ここで、チャット アプリケーション用に Spring WebSocket と stomp js を統合したいと考えていますが、ここでの問題は、stomp.js が「.htm」拡張子なしでサーバーにリクエストを送信していることです。そのため、各リクエスト (info またはその他の xhr) で 404 エラーが発生しています。

Spring WebSocket を有効にして '.htm' 拡張子の js をストンプする方法はありますか?

この拡張機能を削除することはできません。現在のアプリケーションが中断されます。

4

2 に答える 2

1

websocket url にプレフィックスを追加すると、うまく機能します。

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>
于 2015-11-03T00:38:40.807 に答える
0

このように複数のサーブレット マッピングを追加し、.htm を "/url" で動作させて新しい機能を提供することができます。

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

サーブレット 2.5 を使用している場合は、直接使用できます

<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>*.htm</url-pattern>
  <url-pattern>/url</url-pattern>
</servlet-mapping>
于 2014-07-22T09:22:27.507 に答える