次のようなAPIを使用して、resygwtでRESTベースのサービスを提供しています。
@Path("/search")
@GET
List<User> search(@QueryParam("login") String loginMask) throws RemoteException;
そして、このリクエストに対して「不正な形式の URI シーケンス」を受け取りました。
http://devsys23:8080/rest/search?login=%25spa%20ce%25
JavaDoc で言及されているように、このようなリクエストはデフォルトでサポートされているはずなので、これはかなり奇妙です。
- HTTP クエリ パラメータの値をリソース メソッド パラメータにバインドします。
- リソース クラス フィールド、またはリソース クラス Bean プロパティ。
- {@link Encoded} を使用して無効にしない限り、値は URL デコードされます。
- 注釈。デフォルト値は {@link DefaultValue} を使用して指定できます
- 注釈。
useBodyEncodingForURI と URIEncoding="UTF-8" を使用して、server.xml の tomcat コネクタを編集しようとしました。また、org.springframework.web.filter.CharacterEncodingFilter が含まれており、forceEncoding が設定されていましたが、まだ機能しません =(
ログイン パラメータをデコードするように指定するにはどうすればよいですか? アドバイスがあればよろしくお願いします。