2016-12-16 8 views
0

я отправляю два заголовки из файла JS в GET REST вызова:Принимая два HeaderParam в ГЭТ, странную ошибку для Int @HeaderParam

allstaffworking: function(_getstaff){ 
 
      var currentToken = _GetToken(); 
 

 
      var Headers = { 
 
       token: currentToken.tokenStaff, 
 
      }; 
 
      
 
      var HeaderId = { 
 
       idtoken: currentToken.idtokenStaff, 
 
      }; 
 
      
 
      
 
      
 
      console.log("idtoken"+Headers); 
 

 
      if (currentToken !== null) { 
 
      $http({ 
 
         method : 'GET', 
 
         headers: Headers, HeaderId, 
 
         url : REST_URL+'staff/working' 
 
        }).then(function successCallback(response) { 
 
         _getstaff(response) 
 
        }, function errorCallback(response) { 
 
         console.log(response.statusText); 
 
        }); 
 
       } else { 
 
       console.log("NON SEI LOGGATO!!!"); 
 
      } 
 
     },

Заголовки:

var Headers = { 
      token: currentToken.tokenStaff, 
     }; 

     var HeaderId = { 
      idtoken: currentToken.idtokenStaff, 
     }; 

Это страница java, названная REST_URL + «персонал/рабочий»:

public List<Staff> getStaff() 
 
{ 
 
    List<Staff> listOfStaff=sDao.getAll(Staff.class); 
 
    return listOfStaff; 
 
} 
 
    
 
    @GET 
 
    @Path("/working") 
 
    @Produces(MediaType.APPLICATION_JSON) 
 
    @Consumes("application/json") 
 
    public List<Staff> getWStaff(@HeaderParam("token") String token, @HeaderParam("idtoken") int tokenid) 
 
{ 
 
    
 
    s = (Staff) sDao.getById(tokenid, Staff.class); 
 
    st = (StaffType) sDao.getById(s.getStaffType().getIdstaffType(), StaffType.class); 
 
    
 
    
 
    if (ex && st.getIdstaffType()==2){ 
 
\t  List<Staff> listOfWStaff=stfDao.getAllW(); 
 
\t  return listOfWStaff; 
 
    } 
 
    else 
 
    \t return null; 
 
}

принимая два заголовка с: @HeaderParam("token") String token, @HeaderParam("idtoken") int tokenid Первый заголовок Param работает, то второй не работает, смотрите изображение отладочный в enter image description here

Как вы можете видеть на изображении, Значение заголовка idtoken равно 11. Поэтому мой класс java должен работать с этим вторым @HeaderParman таким int. Но это не работает, ошибка 500. Я пытаюсь вручную вставить «11», таким образом:

s = (Staff) sDao.getById(11, Staff.class); 

И таким образом это работает !! Тогда ошибка в том, что когда я беру второй @HeaderParam, я также попытался использовать tokenid как String, конвертировать его с помощью Integer.parseint(tokenid) , но он не изменяется. Надеюсь, что кто-то может мне помочь

ответ

0

$ Свойство заголовка http config object принимает объект как param, так как вы передаете 2 объекта, которые выбирают первый. В идеале вы должны передать что-то вроде этого:

 
$http({ 
    ... 
    headers: { 
     token: currentToken.tokenStaff, 
     idtoken: currentToken.idtokenStaff 
    } 
    ... 
}); 

Также мне интересно, почему вы не получаете сообщение об ошибке в строке, где вы обеспечиваете заголовки и HeaderId отделенной запятой.

+0

Ничего .. "403 (Запрещено)" –

+0

Он не работает ни путем вставки «11» вручную сейчас –

+0

Можете ли вы вставить проверенный сетью снимок запроса, который идет. – jsNovice