[ 
https://issues.apache.org/jira/browse/CXF-7071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15526562#comment-15526562
 ] 

Neal Hu commented on CXF-7071:
------------------------------

Yes, the request is FormParam. I mean the Servlet API can get parameter from 
QueryParam or FormParam both. But cxf wrapped Servlet request can not accept 
from QueryParam. The root cause is CXF consumes the inputstream by default and 
set the servlet  property "usingInputSteam" to true and change the path of 
parsing the parameter of servlet API getParameter. I will try the property, but 
the approach are different from servlet consuming the inputstream comparing 
with CXF.

> HttpServletRequest.getParameter only get String from query not both posted 
> form data
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-7071
>                 URL: https://issues.apache.org/jira/browse/CXF-7071
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.7
>            Reporter: Neal Hu
>             Fix For: 3.1.8
>
>
> The http request:
>  POST /dubbott-demo-provider/v1.0/users/beanparam HTTP/1.1
> HOST: localhost:8080
> accept: text/plain
> content-type: application/x-www-form-urlencoded
> content-length: 12
> pageIndex=99
> The resource method returns null:
> {code:java}
>     public String beanParam(@Context HttpServletRequest req, String ak) {
>         String pageIndex = req.getParameter("pageIndex")    
>         return pageIndex;
>     }
> {code}
> From the servlet 3.1 API doc:
> String javax.servlet.ServletRequest.getParameter(String name)
> Returns the value of a request parameter as a String, or null if the 
> parameter does not exist. Request parameters are extra information sent with 
> the request. For HTTP servlets, parameters are contained in the query string 
> or posted form data.
> if we add below servlet filter:
> {code:java}
>       public void doFilter(ServletRequest request, ServletResponse response, 
> FilterChain chain) throws IOException, ServletException {
>               System.out.println(request.getParameter("pageIndex") );
>               chain.doFilter(request, response);
>       }
> {code}
> The output is "99" the response is the same "99".
> As a conclusion the CXF HttpServletRequest doesn't comply the Servlet 3.1 API 
> Spec.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to