sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Veena Basavaraj (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SQOOP-1795) Sqoop2: Retrieve Http post data in plausible manner
Date Thu, 22 Jan 2015 17:47:35 GMT

    [ https://issues.apache.org/jira/browse/SQOOP-1795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14287848#comment-14287848

Veena Basavaraj commented on SQOOP-1795:

Moving to 1.99.6 since there is not much traction on this ticket

> Sqoop2: Retrieve Http post data in plausible manner
> ---------------------------------------------------
>                 Key: SQOOP-1795
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1795
>             Project: Sqoop
>          Issue Type: Sub-task
>            Reporter: Qian Xu
>            Assignee: Qian Xu
>             Fix For: 1.99.6
> Sqoop client posts parameters as JSON to server. As it is not query string based pattern,
{{HttpServletRequest}} is not able to return the JSON using {{getParameterValue(...)}}. The
current solution is to call {{getReader()}} to get raw post data. There is a danger, if the
method is NOT called at the first place. You do not know, whether the reading position is
at the beginning. You might get unexpected result without notice. SQOOP-1784 is a unfortunate
> {code}
> // 2 line unlucky code
> String username = ctx.getUserName(); // The method will change reading position of reader
> JSONObject postData = (JSONObject) JSONValue.parse(ctx.getRequest().getReader()); //
No contents read
> // 2 line lucky code
> JSONObject postData = (JSONObject) JSONValue.parse(ctx.getRequest().getReader()); //
> String username = ctx.getUserName(); // Good
> {code}
> In practice, it'd suggest to use query string base pattern, i.e. jsonObject=JSON. The
server can call {{ctx.getParameterValue("jsonObject")}} to get the value without any problem.
But we need to change the api.
> Now it is perfectly clear:
> 1. For query string based pattern, caller should always use {{getParameterValue(...)}}.
> 2. For raw post data usage, the post data is parsed as the first parameter's key. So
I'd suggest to add {{RequestContext.getFirstParameterName()}}. so that we can keep fingers
away from {{getReader()}}. 

This message was sent by Atlassian JIRA

View raw message