問題タブ [servlet-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tomcat - java.lang.IllegalArgumentException: サーブレット マッピングで不明なサーブレット名が指定されています
プロジェクトを実行しようとすると、エラーが発生します
私のweb.xml
:
java - Spring xml-less config: URI を使用した HTTP リクエストのマッピングが見つかりません
コントローラーを備えた Spring MVC アプリがあります。
@Controller("/app")
@Controller("/app/page1")
@Controller("/app/page2")
AppInitializer があります。
このアプリを実行すると、アクセスできます
しかし
http://localhost:8080/app/page1でエラーが発生する
警告: 「DispatcherServlet1」という名前の DispatcherServlet で、URI [/app/page1] の HTTP 要求のマッピングが見つかりません
と
http://localhost:8080/app/page2でエラーが発生する
警告: 「DispatcherServlet1」という名前の DispatcherServlet で、URI [/app/page2] の HTTP 要求のマッピングが見つかりませんでした
このように DispatcherServlet に厳密なマッピングを追加することで、これを修正できます
すべてのページが正常に動作します:
http://localhost:8080/app/page1
http://localhost:8080/app/page2
しかし問題は、新しいページを追加するたびに DispatcherServlet へのマッピングを追加する必要があることです。たとえば、ページ 3 を追加するには、Controller を作成する必要があります
@Controller("/app/page3")
と
ディスパッチャ サーブレット マッピングを追加する dispatcher.addMapping("/app", "/app/page1", "/app/page2", **"/app/page3"**);
この最後のステップは避けたいと思います。
dispatcher.addMapping("/app/*");
理想的ですが、上で述べたように機能していません。
何が欠けているか分かりますか?
java - tomcat での複数の戦争の同じ初期コンテキスト
Tomcat には 3 つの個別の戦争があり、各戦争にはいくつかの安らかなサービスが含まれています。たとえば、war1 でのサーブレット マッピングなど、それらのサービスを呼び出しているさまざまなクライアントが戦争に存在します。
アクセスURLはlocalhost:8080/projectName/services/someservice
同様にwar2で
アクセスURLはlocalhost:8080/differentProjectName/postprocessorservices/someotherservice
たとえば、同じ初期コンテキストが異なるクライアントで使用されるように、共通の初期コンテキストを提供する方法があることを知りたいだけです
どんな助けでも大歓迎です。
web-services - IBM WAS の web.xml での複数のサーブレット マッピング
私の Web サービス モジュールは、異なるクライアントを持つ複数の顧客によってアクセスされるため、次のような異なる URI でアクセスできる必要があります。
と
([serverAddress] を myorg.com または localhost に置き換えてください...申し訳ありませんが、StackOverflow では現在 2 つのリンクに制限されています ( http://localhostもカウントされます))
そこで、web.xml で 2 つのサーブレット マッピングを定義したいと考えました。StackOverflow で、次のヒントを見つけました。
私は次の試みをしました:
#1を試してください:
SoapUI でのテスト結果:
- [サーバーアドレス]/MyHTTPRouter/PingService : わかりました
- [serverAddress]/MyHTTPRouter/cet/PingService :エラー 404: java.io.FileNotFoundException: WSWS7147E: システムは /cet/PingService のエンドポイントを見つけられませんでした。
#2を試してください:
SoapUI でのテスト結果:
- [serverAddress]/MyHTTPRouter/PingService : エラー 500: javax.servlet.ServletException: com.ibm.ws.websvcs.exception.ConfigurationException: モジュールの Axis サーブレットで構成コンテキストを取得できませんでした: MyHTTPRouter
- [serverAddress]/MyHTTPRouter/cet/PingService :同上 (エラー 500)
ここでは、IBM Websphere Application Server 8.5 で実行される EJB 3.1 アプリケーションについて話しています。#1と#2の両方が機能しない理由と、 /cet/PingService と /PingService の両方でWebサービスにアクセスするために必要な変更はありますか?
tomcat - java.lang.IllegalArgumentException: 無効ですサーブレット マッピングの SolrServlet1
JSP ページを作成しました。このページからサーブレットを呼び出して何かを処理し、同じ JSP にリダイレクトします。
しかし、JSP のみをデプロイすると、すべて問題ありません。しかし、プロジェクトにサーブレットを含めると、Tomcat 8 が起動に失敗し、以下のエラーがスローされます。
次の方法でweb.xmlを定義しました
これを解決するのを手伝ってください
servlets - 単純な正規表現を使用して Java サーブレットをマッピングする方法はありますか?
/Test
サーブレット Test.java と/anything/Test
同じサーブレットにもマップする必要があります。/*/Test
正規表現を受け入れないため、web.xmlでは機能しないことを読みました。
フィルターを使用してそれを行う別の方法はありますか? ブロックの問題により、Tuckey URL フィルターを使用できません。また、サーブレットにもその「何でも」が必要です。マッピングできれば、そのための URL 文字列を処理する予定でした。
例えば
/ProjectName/Test
テストサーブレットを開く必要があります
また、/ProjectName/xyz/Test
テストサーブレットも開く必要があります
xyz は何でもかまいません。また、テスト サーブレットで xyz を取得したいと考えています。xyz をrequest.getRequestURI()
取得して、URL からフェッチすることを計画しました。
spring - Spring DispatcherServlet 複合マッピング
Spring Boot を使用して、次のアプリケーションを作成しようとしています。
サードパーティの HttpServlet は、次のように「/data/*」にマップする必要があります。
- 「/data/Patient」として指定された「/Patient」
- 「/data/_services/something」として指定された「/_services/*」
次に、新しいサービス オプションを追加する必要があります。「/data/_services/smart/」のリクエスト マッピングを使用していた RestController を使用して、これを実行したかったのです。
さらに、「/health」や「/management」などの他のエンドポイントをディスパッチャ サーブレットで処理する必要がありました。「/」にマッピングされたデフォルトのディスパッチャ サーブレットを使用すると、「/health」、「/management」が正常に機能します。
サードパーティのサーブレットに ServletRegistrationBean を追加すると、「/data/Patient」などのリクエストは正常に機能します。@Bean public ServletRegistrationBean data() { HapiFhirServlet サーブレット = new HapiFhirServlet(myAppCtx, metadataRepository); ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(サーブレット, "/data/*"); サーブレット登録Beanを返します。}
しかし、「/data/_services/smart」で RestController をマップできません。やっています:
この ServletRegistrationBean を追加するとすぐに、パス「/data/_services/smart/ 」が機能し、サード パーティのサーブレットのパスが機能しますが、他のディスパッチャー リクエスト (「/health」、「/management」) は失敗します。「/」または「/data/_services/smart/」のいずれかにしかディスパッチャを配置できないようですが、両方には配置できません。
誰かアドバイスしてもらえますか?
ここに私のアプリケーションクラスがあります: