[ https://issues.apache.org/jira/browse/AXIS2-5929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Lazarski resolved AXIS2-5929. ------------------------------------ Resolution: Fixed I applied the patch - just changed javax to jakarta - I didn't see the Github PR until I applied the patch so I will close that. > REST GET request using Accept HTTP Header to indicate JSON, does not working > ---------------------------------------------------------------------------- > > Key: AXIS2-5929 > URL: https://issues.apache.org/jira/browse/AXIS2-5929 > Project: Axis2 > Issue Type: Improvement > Components: json, transports > Affects Versions: 2.0.0 > Reporter: Marti Pamies Sola > Priority: Minor > Attachments: AbstractJSONOMBuilder.java, > AbstractJSONOMBuilder.java.patch > > > I am implementing a REST services according to [HL7 > FHIR|[http://www.hl7.org/fhir/],] that must be able to return a Patient > resource, both on xml or json, depending on http Accept header, and I am not > able to implement it using axis. > Request is: > * > {color:#505050}[http://localhost:8080/opencdefhirserver/services/FHIR/Binary/4295642378]{color} > * {color:#505050}Accept =application/fhir+json > {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. > The exception I get is: > "{_}No JSON message received through HTTP GET or POST"{_} > I've been reviewing source code and I guess the issue comes from this > fragment of code at org.apache.axis2.json.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. > Also once previous code fixed, I realize that axis does not take care or > Accept HTTP Header, so GET Requests where not payload is provided and so no > contentType is specified, are just able to return as XML, but not JSON. > See org.apache.axis2.transport.http.util.RESTUtil line 144 > {code:java} > if (contentType == null || "".equals(contentType)) { > contentType = HTTPConstants.MEDIA_TYPE_X_WWW_FORM; > } {code} > > I've implemented and improvement on both classes in order to be able to mange > those request and done the Pull Request. > Hope useful. > Thanks, > Martí > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org