2016-09-22 22 views
0

Spring REST APIエンドポイントを使用してSpringブートサービスを作成しています。しかし、私は非常に単純な休息の呼び出しで立ち往生しています。私の残りのコントローラは以下の通りです:Spring REST Endpoint:404要求されたリソースが利用できません。

@RestController 
@RequestMapping(value={"/reportservice"}) 
public class ReportingMessageController { 

    @Autowired 
    private ReportService reportService; 

    @RequestMapping(value = {"/reports" }, method = RequestMethod.GET, produces = { 
        MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE }) 
    public ResponseEntity<ResponseMessage> getReport(@RequestParam(value="eaid", required=true) String eaid, 
      @RequestParam(value="source", required=false) String source, 
      @RequestParam(value="userid", required=false) String userid, 
      @RequestParam(value="org", required=false) String org, 
      @RequestParam(value="startdate", required=true) Date startDate, 
      @RequestParam(value="enddate", required=true) Date endDate, 
      @RequestParam(value="page", required=false) int pageid){ 
     ReportQueryParams params = new ReportQueryParams(); 
     params.setEaid(eaid); 
     params.setSid(sid); 
     params.setSource(source); 
     params.setUserid(userid); 
     params.setOrg(org); 
     params.setStartdate(startDate); 
     params.setEnddate(endDate); 
     params.setPageid(pageid); 
     System.out.println(params); 
     ResponseMessage response = reportService.getReports(params); 
     return new ResponseEntity<ResponseMessage>(response, HttpStatus.OK); 
    } 
} 

サービスクラスがある:

@Component 
public class ReportService { 

    public ResponseMessage getReports(ReportQueryParams params){ 
     return new ResponseMessage(); 
    } 
} 

ResponseMessageクラスは、単純なPOJO

である私のURIは

http://localhost:8080/reportservice/reports?eaid=6764623946&source=ABC&userid=abhattacherji&org=trpo&startdate=8/11/2016&enddate=9/1/2016&page=1 

であり、私はHTTPステータスを取得しています404エラー。クエリのparamを無視しても、最初の部分(/ reportservice/reports)も機能しません。どんな鉛も役立ちます。前もって感謝します。

+0

Webサーバーにアプリケーション用に設定されたコンテキストパスはありますか? –

+0

あなたはリクエストを行う部分を投稿することができます。少なくとも、URLを生成する部分を投稿してください。 – Priyamal

+0

@Priyamal、私は郵便配達員から電話しています。 @BranislavLazicのように、AcceptヘッダーでApplication/xmlとApplication/jsonとして投稿したURI –

答えて

0

間違った日付パラメータを渡したと思います。

たとえば、&startdate=8/11/2016これは、異なるパス変数として考えることができます。 、MMは月、ddはより多くの場合は、日付

public ResponseEntity<ResponseMessage> getReport(@DateTimeFormat(pattern="MM/dd/yyyy") Date startDate) { 
    ... 
} 

あなたが好きな日付パラメータを渡す必要があり

@DateTimeFormat yyyyは年がある(パターン= "MM/DD/YYYY")されています詳細は、私が作ったpassing date into request param

0

3つの変更を、このリンクをチェックし、それが働いた:

  1. 置き換え@Re @QueryParamを持つquestParam
  2. 変更された日付ans int to String
  3. 値とパラメータの名前が同じです(「startdate」と「startDate」ではなく「startdate」のように)。
関連する問題