axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AXIS2-5929) REST Services URL GET json request not working
Date Sat, 18 Aug 2018 14:53:00 GMT

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

Andreas Veithen commented on AXIS2-5929:
----------------------------------------

{{getRequestURI}} would return {{/opencdefhirserver/services/FHIR/Binary/4295642378}}, but
that doesn't look like JSON, right?

> REST Services URL GET json request not working
> ----------------------------------------------
>
>                 Key: AXIS2-5929
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5929
>             Project: Axis2
>          Issue Type: Improvement
>          Components: json
>    Affects Versions: 1.7.8
>            Reporter: Marti Pamies Sola
>            Priority: Minor
>         Attachments: AbstractJSONOMBuilder.java, AbstractJSONOMBuilder.java.patch
>
>
> At a REST services, I do not receive HTTP GET requests when content-type is json, and
parameters are at request URL path (not as Query string). Let me explain in detail:
> I am implementing a REST services according to [HL7 FHIR|[http://www.hl7.org/fhir/],]
that must be able to return content both on xml and json (depending on http header content-type),
once an HTTP GET request is received. Keys for the information to be returned can be provided
both directly at the request URL path or as a Query String:
>  * Keys at URL path: {color:#505050}[http://localhost:8080/opencdefhirserver/services/FHIR/Binary/4295642378]{color}
>  * Keys as Query string: {color:#505050}[http://localhost:8080/opencdefhirserver/services/FHIR/Binary?id4295642378|http://localhost:8080/opencdefhirserver/services/FHIR/Binary/4295642378]{color}
> Where, FHIR is my service; Binary is the axis2 operation to be executed (mapping to a
FHIR resource); and {color:#505050}4295642378{color} the resource id.
> Providing keys as Query String work properly with xml and json, but providing key at
URL path just work with xml, on json I get the following exception:
> "_No JSON message received through HTTP GET or POST"_
> I've been reviewing source code and I guess the issue comes form this fragment of code
at AbstractJSONOMBuilder.java line 85:
>  
> {code:java}
> //            if ((index = requestURL.indexOf("=")) > 0) {
>                 jsonString = requestURL.substring(index + 1);
>                 reader = new StringReader(jsonString);
>             } else {
>                 throw new AxisFault("No JSON message received through
HTTP GET or POST");
>             }
> {code}
> As it only accepts parameters as Query String, and when not provided it raise an exception.
> I propose the following modification, where if not Query String is provided, it considers
full request URL as input json.
> {code:java}
> //             if ((index = requestURL.indexOf("=")) > 0) {
>                 jsonString = requestURL.substring(index + 1);
>                 reader = new StringReader(jsonString);
>             } else {
>                 /*
>                  * MARTI PAMIES SOLA
>                  * Get JSON message from request URI if not present as
parameter.
>                  * To be able to response to full URL requests
>                  */
>                 HttpServletRequest httpServeltRqst =(HttpServletRequest)messageContext.getProperty("transport.http.servletRequest");
>                 String requestParam=httpServeltRqst.getRequestURI();
>                 if (!(requestParam.equals(""))) {
>                     jsonString = requestParam;
>                     reader = new StringReader(jsonString);
>                 }else {
>                     throw new AxisFault("No JSON message received through
HTTP GET or POST");
>                 }
>             }
> {code}
> I've test locally and it work for me, so I propose to include modification at next release.
Attached is the new AbstractJSONOMBuilder.java file and also the svn patch.
> Hope useful.
> Thanks,
> Martí
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message