2017-04-19 22 views
1

に入る空のマップは、{}以下GETリクエスト

をフェッチするエンドポイントに問題に直面しながら、スプリングMVCエンドポイントは、フェッチしない場合です。

http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD

しかし、私は、次のデータを設定し、これまでには、すべてのボディは、この問題に私を助けることができる働いていません。別のバージョン7.0.73, 8.0.x +が機能していないものの

http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data={}

@RequestMapping(value = "/apps/{appId_}/users/{username_}", method = RequestMethod.GET) 
@ResponseBody 
@Transactional 
public UserResponseDTO getUserAndToken(@PathVariable Long appId_, @PathVariable String username_, @RequestParam("password") String password_, @RequestParam("data") String datas) throws Exception { 
//do stuff 
} 

EDIT

それはだ任意の編集と、この問題は、Tomcatバージョン7.0.63に動作します。

答えて

0

のメジャーアップデートのこの種の動作の影響。

クイックフィックスでは、古いバージョンのいずれかにダウングレードできます。私は7.0.63でtomcatをダウングレードしました。

これ以上の場合R & D on Spring MVC以下のリクエストに無効な文字のリストを追加している間にリクエストを拒否しています。愚かな文字の

control  = <US-ASCII coded characters 00-1F and 7F hexadecimal> 
    space  = <US-ASCII coded character 20 hexadecimal> 
    delims  = "<" | ">" | "#" | "%" | <"> 

リストが許可されているが、原因となる可能性のある問題:URI構文内禁じ

除外US-ASCII文字が

unwise  = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`" 

次の文字

は、クエリコンポーネント内に予約されており、 URI/URL内で特別な意味を持つ:

reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," 

For more information visit.

ソリューション:コードにすでに

encodeURI("http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data={}") 
> http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data=%7B%7D 
0

あなたはvalue = "/apps/users/{username_}"

修正で{appId_}を指定するのを忘れ:あなたの方法は@RequestParam("data") String datas を受け入れ、あなたがdata={} 文字列を送っている修正して引用されるべきvalue = "/apps/{appId_}/users/{username_}"

~~~

is data=""

+0

私は追加が、ここremoved.Butに誤っては、まだ –

+0

は、「データ」の文字列を固定して試してみてください働きません。 – sovas

+0

だから、私はwise'、@RequestParam( "data")String data) 'のようなものを設定する必要があります。 @sovasあなたが言った通りに設定しても、まだ動作していません。 –