0

5、5.0、0.5、3.5、3.65 などの Double パス パラメータを渡したいと思います。

だから私はJAX-RSリソースでそのようなメソッドを作ります:

 @GET
 @Path("/rated-above/{minAvgRating : \\d+(\\.\\d+)? }")
 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
 public Response getProvidersOnAverageRatedAbove( @PathParam("minAvgRating") Double minAvgRating,
                                                         @BeanParam PaginationBeanParam params) throws ForbiddenException {
             // method 
 }

しかし、この方法は正規表現パターンがなくても正しく機能しないようです。

Caused by: org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: pl.salonea.jaxrs.utils.ErrorResponseWrapper of media type: application/octet-stream
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:67)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:153)

アップデート

正規表現なしで申し訳ありませんが、正しく動作します 正規表現 \d+(\.\d+) に問題がありますか? 私も使用しようとしています: [0-9]+(\.[0-9]+)? \S+のみ(空白ではありません)

4

1 に答える 1