2

春のアプリに休憩サービスを追加したい。ディスパッチャーは現在、*.do パスのみを提供するように構成されています。これは、残りのパスと実際には互換性がないため、そのような追加のパターンを追加しました。

<servlet-mapping>
    <servlet-name>timetabling</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>timetabling</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

残りのコントローラーを押すと、

08-01-2013 15:26:13,075 [23198170@qtp-12556818-9] org.springframework.web.servlet.PageNotFound  1080 WARN  No mapping found for HTTP request with URI [/timetabling/rest/] in DispatcherServlet with name 'timetabling'

そのようにマッピングを変更すると

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

私は得る

08-01-2013 15:28:33,664 [13327669@qtp-4725080-0] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping  220 DEBUG Returning handler method [public java.lang.String edu.ucl.isd.timetabling.web.controller.RestController.test(javax.servlet.http.HttpServletRequest)]

これにより、マッピングを指定する方法に何か問題があるのではないかと疑われますが、それが何であるかはわかりません。残念ながら、これはアプリの他の領域を壊すため、2 番目のフォームを使用できません。別のマッピングが必要で、誰でも問題を見つけることができますか?

完全を期すために、ここに残りのサービスの抜粋を示しますが、これがルート マッピングで正しく機能することを確認すると、問題はここにあるとは思いません

@Controller
@RequestMapping("/rest")
public class RestController {

    @RequestMapping(value="/", method = RequestMethod.GET)
    public @ResponseBody String test() {
         return "rest service is alive";
    }
}
4

1 に答える 1

3

コントローラ上で、リクエストの@RequestMapping("/rest")サーブレットマッピングを使用したメソッドで@RequestMapping( "/")を使用すると、メソッドに正しくディスパッチされません。test( )メソッドに到達する場合は、削除することをお勧めします。コントローラからの@RequestMappingを実行し、メソッドでのみ保持します。/rest/*/rest/rest/test()/rest//rest

于 2013-01-08T17:14:51.603 に答える