SpringBootアプリケーションの複数のAngularクライアントでのRequestMappingの問題

ステファンフォーク

複数のAngularクライアントに転送するには、いくつかのGETリクエストを処理する必要があります。

https://example.com/web/index.html    // Client 1
https://example.com/admin/index.html  // Client 2

断片化された(#-ed)パスを使用したくないので/web物事はかなり厄介になります。

これは私の現在機能していない解決策です:

@Controller
public class ForwardController {

    @RequestMapping(value = "/*", method = RequestMethod.GET)
    public String redirectRoot(HttpServletRequest request) {

        String req = request.getRequestURI();

        if (req.startsWith("/admin/")) {
            return this.redirectAdminTool(request);
        }

        return "forward:/web/index.html";
    }

    @RequestMapping(value = "/web/{path:[^.]*}", method = RequestMethod.GET)
    public String redirectWeb(HttpServletRequest request) {
        return "forward:/web/index.html";
    }

    @RequestMapping(value = "/admin/{path:[^.]*}", method = RequestMethod.GET)
    public String redirectAdminTool(HttpServletRequest request) {
        return "forward:/admin/index.html";
    }
}

これで、仕事はアクセスしています。

  • /web/pricing

しかし、機能しないのはアクセスです

  • /web/pricing/vienna

/web/pricingブラウザからアクセスし、「更新」をクリックすると、すべてが機能します。しかし、それはそうではありません/web/pricing/vienna

現在、サブパスも機能するようにするために、リクエストを処理する方法と転送する方法がわかりません/web/pricing/vienna

これを機能させる方法はありますか?

@RequestMappingパスを次のようなものに変更すると/web/**、すべてが無限ループになり、サーバーが破損します。


おそらく必要なのは、次のような式です。

/web(/[^\\.]*)

その結果、

MATCH:    /web/pricing
MATCH:    /web/specials/city
MATCH:    /web/specials/city/street
NO MATCH: /web/index.html

ただし、Springはこの正規表現を好みません。 /web(/[^\\.]*)

結局、この問題は、以下の静的リソースを除くすべてのものに一致する方法を見つけることに要約されます/web

ステファンフォーク

これが私がやったことです:

両方のクライアントをサブディレクトリに移動しましたa/

static/a/web
static/a/admin

さらに、私は次のForwardControllerように実装しました

@Controller
public class ForwardController {

    @RequestMapping(value = "/*", method = RequestMethod.GET)
    public String redirectRoot(HttpServletRequest request) {
        return "forward:/a/web/index.html";
    }

    @RequestMapping(value = "/a/**/{path:[^.]*}", method = RequestMethod.GET)
    public String redirectClients(HttpServletRequest request) {

        String requestURI = request.getRequestURI();

        if (requestURI.startsWith("/a/admin/")) {
            return "forward:/a/admin/index.html";
        }

        return "forward:/a/web/index.html";
    }

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アプリケーションの公開後のクライアントマシンでの変数の競合に関する問題

分類Dev

メントSpringbootアプリケーションながら、クラスパスの問題

分類Dev

複数のアプリケーションでのシングルサインオントークンの使用

分類Dev

WPFMVVMライトアプリケーション内のSimpleIocの問題

分類Dev

SpringBootアプリケーションと並行性の問題

分類Dev

SpringBootアプリケーション-Mavenの問題

分類Dev

Spring Boot + Angularアプリケーションのデプロイ中の問題

分類Dev

Herokuの問題でのQuarkusアプリケーションのデプロイ

分類Dev

wildflyで実行する場合のSpringBootアプリケーションの問題(Bean作成エラー)

分類Dev

JSFWebアプリケーションのタイムアウトの問題

分類Dev

アプリケーションのインストールの問題

分類Dev

CoreData移行の問題-アプリケーションのクラッシュ

分類Dev

Javaアプリケーションが複数のプラットフォームで動作するのを妨げている問題は何ですか?

分類Dev

複数のSpringBootアプリケーション

分類Dev

DjangoWebアプリケーションでのSMTPの問題

分類Dev

DjangoWebアプリケーションでのSMTPの問題

分類Dev

複数のメインクラスとGradleのアプリケーションのプラグイン

分類Dev

アプリケーションでのCitrix直接ログインの問題

分類Dev

CakephpアプリケーションでのFacebookログインの問題

分類Dev

ラバアプリケーションで問題のあるJavaスクリプト

分類Dev

アプリケーションコントローラーでのalias_methodチェーンの問題

分類Dev

クライアントアプリケーションで複数のウィンドウを持つ1つのソケットを使用する

分類Dev

SpringBootアプリケーションのメインクラスの例外

分類Dev

アプリケーションのグラフィックスの問題

分類Dev

Django + Celery + Apache mod_wsgi + Postgres + RabbitMQアプリケーション(複数のクライアント用)

分類Dev

同じSpringBootアプリケーションへの複数のSSL証明書(複数のドメイン)

分類Dev

複数のクライアントの単一サーバーアプリケーションで主キー列の一意性を維持する方法

分類Dev

複数のアプリケーションIDのアドオンインストーラー

分類Dev

Angular5:Angularアプリケーションを複数のクライアントにデプロイする

Related 関連記事

  1. 1

    アプリケーションの公開後のクライアントマシンでの変数の競合に関する問題

  2. 2

    メントSpringbootアプリケーションながら、クラスパスの問題

  3. 3

    複数のアプリケーションでのシングルサインオントークンの使用

  4. 4

    WPFMVVMライトアプリケーション内のSimpleIocの問題

  5. 5

    SpringBootアプリケーションと並行性の問題

  6. 6

    SpringBootアプリケーション-Mavenの問題

  7. 7

    Spring Boot + Angularアプリケーションのデプロイ中の問題

  8. 8

    Herokuの問題でのQuarkusアプリケーションのデプロイ

  9. 9

    wildflyで実行する場合のSpringBootアプリケーションの問題(Bean作成エラー)

  10. 10

    JSFWebアプリケーションのタイムアウトの問題

  11. 11

    アプリケーションのインストールの問題

  12. 12

    CoreData移行の問題-アプリケーションのクラッシュ

  13. 13

    Javaアプリケーションが複数のプラットフォームで動作するのを妨げている問題は何ですか?

  14. 14

    複数のSpringBootアプリケーション

  15. 15

    DjangoWebアプリケーションでのSMTPの問題

  16. 16

    DjangoWebアプリケーションでのSMTPの問題

  17. 17

    複数のメインクラスとGradleのアプリケーションのプラグイン

  18. 18

    アプリケーションでのCitrix直接ログインの問題

  19. 19

    CakephpアプリケーションでのFacebookログインの問題

  20. 20

    ラバアプリケーションで問題のあるJavaスクリプト

  21. 21

    アプリケーションコントローラーでのalias_methodチェーンの問題

  22. 22

    クライアントアプリケーションで複数のウィンドウを持つ1つのソケットを使用する

  23. 23

    SpringBootアプリケーションのメインクラスの例外

  24. 24

    アプリケーションのグラフィックスの問題

  25. 25

    Django + Celery + Apache mod_wsgi + Postgres + RabbitMQアプリケーション(複数のクライアント用)

  26. 26

    同じSpringBootアプリケーションへの複数のSSL証明書(複数のドメイン)

  27. 27

    複数のクライアントの単一サーバーアプリケーションで主キー列の一意性を維持する方法

  28. 28

    複数のアプリケーションIDのアドオンインストーラー

  29. 29

    Angular5:Angularアプリケーションを複数のクライアントにデプロイする

ホットタグ

アーカイブ