2017-09-06 11 views
2

私は2つの完全に異なるURLについては、以下の取得と私は理由を説明することはできません:URLは完全に異なっているので、RESTEASY002142:複数のリソースメソッドの対戦要求

RESTEASY002142: 

    Multiple resource methods match request "GET /devices/distinctValues/3". 
    Selecting one. 

Matching methods: 
[public javax.ws.rs.core.Response 
mypackage.DevService.getDistinctValues(int) throws java.lang.Exception, 

public javax.ws.rs.core.Response 
mypackage.DevRESTService.getDevice(int,java.lang.String) 
throws java.lang.Exception] 

この警告は、出てくるべきではありません。誰もが知っている場合は、なぜこれが起こっている:両方の方法について

のURL:

getDevice

@GET 
@Path("devices/{customerId}/{deviceIds}") 
@Produces({ "application/json" }) 

getDistinctValues:あなたの要求文字列が両方のパスを一致させることができるので

@GET 
@Path("devices/distinctValues/{customerId}") 
@Consumes("application/json") 
@Produces("application/json") 

答えて

3

警告が発生したがテンプレート。要求"devices/distinctValues/3"

  • 一致していることをcustomerId = "3"
  • 一致していることをcustomerId = "distinctValues"deviceIds = "3"devices/{customerId}/{deviceIds}devices/distinctValues/{customerId}

There is no type resolutionとあなたの要求がStringあるので、それは"distinctValues"を受け入れることができないことをcustomerId指示する方法はありません。

問題を解決するには、リンクされた質問のように正規表現を指定するか、サーバー(JAX-RSリソース)とクライアントが使用する基本的な共有インターフェイスのRESTEasy proxy frameworkを使用してから、タイプ解決の共通言語。ドキュメントの例にはタイプミスがあることに注意してください。

関連する問題