2015-01-08 1 views
2

나는 안드로이드 클라이언트로부터 멀티 파트 메시지를 받고 있습니다. 저지 웹 서비스를 사용하여 해당 다중 파트 데이터를 수신합니다. 멀티 파트 데이터를 검색 할 수 있습니다. 사용자 ID를 얻기 위해 @Context HttpServletRequest 요청을 사용할 수 없습니다. 내 안드로이드 클라이언트는@context 저지의 POST 메서드에 대한 httpServletRequest 요청이 null입니다.

HttpClient httpClient = new DefaultHttpClient(); 

Log.e("Picture Upload URL is:", QueryConfig.PROTOCOL+ StaticHelper.HOST + StaticHelper.port+QueryConfig.projectService+QueryConfig.sendProfilePicture); 

HttpPost postRequest = new HttpPost(QueryConfig.PROTOCOL+ StaticHelper.HOST + StaticHelper.port+QueryConfig.projectService+QueryConfig.sendProfilePicture); 

ByteArrayBody bab = new ByteArrayBody(data,StaticHelper.UserID+".jpg"); 
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
reqEntity.addPart("file", bab); 
reqEntity.addPart("fileFilename",new StringBody(StaticHelper.UserID+".jpg")); 
HttpResponse response = httpClient.execute(postRequest); 

내 저지 서비스는 GET 세션 방법은 여기

protected String getSession(String token, HttpServletRequest req) 
     throws ServletException, IOException { 

    String value = (String) context.getAttribute(token); 

    LOG.info("Retrive Token Value-->" + value); 

    return value; 
} 

내가 요청을 전달하고 사용자 ID를 검색하기 위해 생성 된 토큰

@Path("/mobileUserPictureInsert") 
@POST 
@Consumes("multipart/*") 
@Produces(MediaType.APPLICATION_JSON) 
public String save(@Context HttpServletRequest request, MultiPart multiPart) 
     throws ParseException { 
    BodyPartEntity bpeTokenId = (BodyPartEntity) multiPart.getBodyParts() 
      .get(2).getEntity(); 
    try { 
     tokenId = getString(bpeTokenId.getInputStream()); 
     String userId = ""; 
     userId = getSession(tokenId, request); 

입니다이다. 그것은 get 메소드에서 작동합니다. 하지만 게시물 방법에 대한 null 값을 받고있다. 도와주세요. 저지에서 게시 방법에 대한 요청을받는 방법.

답변

0

지금 수행중인 작업은 ServletContext 자체에서 HttpServletRequest가 아닌 context.getAttribute()을 얻는 것입니다. 따라서 다음과 같이되어야합니다 : String value = (String) req.getAttribute(token). 지정된 이름의 속성이없는 경우 .getAttribute() 메서드는 null을 반환합니다.