Tomcat Apache 6.0環境で動作するSpring 3.0を使用してRESTfulサービスを開発しています。 Spring DispatcherServletは "/ spring/*"に設定されています。 Springサーブレットは複数のクライアントを処理し、アプリケーション内に多数のコントローラを持っています。私はRESTサービス用の新しいコントローラを追加しています。
http://<server>:<port>/<context>/spring/ws/service1
パッケージ内のすべてのコントローラクラスのURLにプレフィックスを追加します。
私は春の注釈で見つけた唯一の方法は、以下のとおりです。私は、リソースへの完全なURLは次のようになりますように、私のコントローラクラスのすべてが「WS」(ウェブサービス)のような識別接頭辞を持つようにしたいですこのように@RequestMapping使用:
@Controller
@RequestMapping("/ws/service1")
public class Service1 {
@RequestMapping(method=RequestMethod.GET)
@ResponseBody
public String getHtml() { ... }
....
}
しかし、私はクラスの数十を持っているので、私は、各クラスに「/ WS」接頭辞をつけたくありません。したがって、別の開発者が新しいサービスを追加した場合、このプレフィックスを覚えておく必要はなく、プレフィックス名を「/ ws」から別のものに変更する場合は、すべてのファイルを変更する必要はありません。 @RequestMapping注釈は、パッケージレベルではなく、メソッドまたはクラスにのみ適用可能であることがわかりました。
すべてのRESTコントローラに接頭辞を付けてアクセスする方法はありますか?
Springサーブレットのweb.xml URLマッピングは、そのURLで実行されている他のコントローラがあるため変更できません。
最後の文が重要です - 「他のコントローラ」の意味を広げることができますか? – skaffman
My SpringサーブレットはFlexクライアントを提供しており、そのためにBlazeDSコントローラを使用しています。 Tomcatサーバー自体も静的コンテンツを提供する必要があります。 RESTfulコントローラはそれに加えています。だから、私はSpringのサーブレットのURLを "/ *"または "/ ws/*"にマップすることはできません。 – Shreerang