Web サービスの開発に Jersey Framework を使用しています。内部にセッターとゲッターを持つ UserInfo という名前の DTO オブジェクトがあります。ユーザーがログインするときに、最初にこの DTO 値を設定しています。このユーザー固有の DTO を Jersey サービス クラスに渡すにはどうすればよいですか?
MultivaluedMap と Form 内にそれらを設定しようとしましたが、うまくいきませんでした。
これは私のコードです:
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("queryTerm", "userdto");
Form f = new Form();
f.add("name", "1001D");
そして、これが私がデータを取得しようとしている方法です。
public class HaiService {
@GET
@Produces("application/json")
@Consumes("application/json")
public String sayPlainTextHello(@Context UriInfo ui) {
MultivaluedMap queryParams=ui.getQueryParameters();
Iterator it=queryParams.keySet().iterator();
String theKey=null;
String returnString="";
while(it.hasNext()) {
theKey=(String)it.next();
System.out.println(queryParams.getFirst(theKey));
}
System.out.println("I am called");
return "Hi";
}
しかし、私は運が悪かった。通常、私の要件は、ログオン時にユーザー固有のデータを保存し、それをサービス クラス内で取得することです。
ユーザーが 1 つのブラウザーで複数の ID を使用してログインすると、同じセッション ID が生成され、最初にログインしたユーザーのデータが上書きされる可能性があるため、セッションにデータを保存することは避けています。