teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

説明を詳細化した。

2015/08/07 01:49

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -1,5 +1,17 @@
1
+ まず、FacesContextはJSF固有のものですので、JAX-RSと直接関係ありません。
2
+ そのため、JAX-RSのメソッド内では事前の初期化がされず、
3
+ nullになってしまっていたのだと思います。
4
+ 「同じ言語、同じ環境(JavaEE・glassfish)」ではあっても、
5
+ JSFとJAX-RSでは動作は異なる、ということですね。
6
+
7
+ それから、フィールドとして@Contextした場合には、
8
+ おそらくこのクラスのインスタンス生成が、
9
+ リクエストのタイミングではなく、もっと前だったのではないかと思います。
10
+ リクエストされていない時にHttpServletRequestを設定しようとしても、
11
+ 存在しないのでnullになっていたのだと思います。
12
+
1
13
  以下の様に、メソッド引数に追加したらどうでしょうか?
2
14
 
3
15
  ```lang-java
4
- public String login(@PathParam("username") String username, @PathParam("password") String password, @Context HttpServletRequest request)
16
+ public String login(@PathParam("username") String username, @PathParam("password") String password, @Context HttpServletRequest request)
5
17
  ```