1

Spring MVC RequestMappingに問題があり、続行する方法について誰かがアドバイスをくれることを期待しています。

レガシークライアントからアクセスされるサーバーで作業しています。クライアントは単純な要求(以下を参照)を送信しますが、新しいサーバーに対応するために変更することはできません。

クライアントは、 / dbintf?command = GETINFO、acctNum = 111 の形式のgetまたはpostsを送信します。サーバーはdbintfと呼ばれ、単純なテキスト応答を返します。

コマンドごとにSpringコントローラーを作成し、コマンドパラメーターに基づくparamsマッピングを使用して単一のコントローラーメソッドにアノテーションを付けたいと思います。したがって、GETINFOControllerのマッピングは次のようになります。

@RequestMapping(params="command=GETINFO")
public String serviceRequest(....

しかし、これを機能させることはできません。サービスの詳細は次のとおりです。

web.xmlのサーブレットマッピング:

<servlet-mapping>
    <servlet-name>dbintf</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

intf-servlet.xmlの注釈スキャンディレクティブ

<context:component-scan base-package="com.intf.controller" />   
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

私はこのスキームを機能させるためにさまざまな組み合わせを試みてきました。この試行錯誤の作業を2つの例に要約します。

これは動作しません。応答は次のとおりです。「要求されたリソース()は使用できません。」

@RequestMapping( params="command=GETINFO")
public class TESTController  {
    @RequestMapping( method = RequestMethod.GET)
    public String serviceRequest

URLを変更して別のレベルを追加する場合:/ dbintf / test?command = GETINFO、acctNum =111ハンドラーメソッドのアノテーションにURLパターンを追加すると機能します。

@RequestMapping( params="command=GETINFO")
public class TESTController  {
    @RequestMapping( value="/test",method = RequestMethod.GET)
    public String serviceRequest

これにより、paramsマッピングだけでは機能しないと思います。URLパターンはマッピングスキームの一部である必要があるようです。ただし、私の場合、クライアント要求URLはdbintf?....として固定されているため、使用可能なURLパターンはありません。私の質問:パターンと組み合わせてではなく、パラメータベースのマッピングを単独で使用することは可能ですか?もしそうなら、私は何が欠けていますか?

助けやアドバイスを事前に感謝します、生意気です

4

1 に答える 1

0

コントローラを「/dbintf」にマッピングしている設定が表示されませんか?DispatcherServlet(「dbintf」サーブレットがDispatcherServletであると仮定)は、「/dbintf」ではなく「/」だけにマップされています。コンテナの「/」に対して「/dbintf」で利用できるようにWebアプリをデプロイしていますか?私が得ようとしているのは、@RequestMappingにいくつかの構成を追加する必要があるかもしれないということだと思います。

@RequestMapping(value="/dbintf", params="command=GETINFO")
于 2012-04-13T18:38:30.440 に答える