Richard >>
If you want to hack around (into the undefined semantics sea), you can define a query parameter and add that to your endpoint (String or a like) and do the JSON processing yourself *Alternatively I have already been using the same* *Json String ~ *{ "searcharg": "jakarta.ws.rs.ext.Provider", "folderfilepatharg": "F:/TOOLS/APACHEMAVEN/MAVEN-REPO", "searchextnarg" : "jar", "searchstartno": 120, "searchendno": 150 } @GET @Path("/SearchStringGet/{searchVal}") @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.APPLICATION_JSON) public SearchZipJarBean getSearchBean( @PathParam("searchVal") String searchVal ) { try { SearchZipJarResourceControllerlog.debug("@Path SearchStringGet/{searchVal} : " + searchVal); .......( String to Pojo using jakson ) srchZpjra.processinSearchEngine(); } catch (Exception e) { throw new SearchZipJarException("getSearchBean()",this.getClass(), e); }finally { } } I would like to use Pojo Object to be passed to the GET processing instead of String @PathParam("searchVal") public SearchZipJarBean getSearchBean(SearchZipJarBean srchBean) Can you suggest any solutions for the same. with regards N.S.Karthik On Sat, Apr 12, 2025 at 12:18 AM Richard Zowalla <r...@apache.org> wrote: > > If you want to hack around (into the undefined semantics sea), you can > define a query parameter and add that to your endpoint (String or a like) > and do the JSON processing yourself. > I wouldn’t do though. > > > Am 11.04.2025 um 18:52 schrieb Nanjangud Shivakumar Karthik < > nskarthi...@gmail.com>: > > > > Hello > > > > > > *>> if you insist on GET, you need to correctly encode the json into a > > query parameter.* > > > > I still would like to use GET instead of POST ( Since the args > submitted > > is Processing ,Filtering the data on return , It has nothing to > persist > > > > Could u suggest on correcting to encode the Json into the Query Parameter > > > > Json fetched from UI > > > > { "searcharg": "jakarta.ws.rs.ext.Provider", "folderfilepatharg": > > "F:/TOOLS/APACHEMAVEN/MAVEN-REPO", "searchextnarg" : "jar", > > "searchstartno": 120, "searchendno": 150 } > > > > on the Controller the method defined is as follows used to prefilter > args > > to process > > > > @GET > > > > @Consumes(MediaType.APPLICATION_JSON) > > > > @Produces(MediaType.APPLICATION_JSON) > > > > @Path("/SearchBeanGet") > > > > public SearchZipJarBean getSearchBean(SearchZipJarBean srchBean) { > > > > loggerlog.info("Pre Process " + srchBean.toString()); > > > > .... > > > > loggerlog.info("Post Process " + srchBean.toString()); return srchZpjra > > .getSrchBean(); > > > > } > > > > with regards > > N.S.Karthik > > > > On Thu, Apr 10, 2025 at 1:56 PM Richard Zowalla <r...@apache.org> wrote: > > > >> GET with a (JSON) payload is against the RFC; a GET with a payload has > no > >> defined semantics: > >> https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.1 > >> > >> That being said, „data“ is appended to the URL as query parameters, the > >> content type is ignored and the JSON strings will appear (encoded) in > the > >> URL. > >> > >> I would suggest to switch to POST here … if you insist on GET, you need > to > >> correctly encode the json into a query parameter. > >> > >>> Am 10.04.2025 um 07:25 schrieb KARTHIK SHIVAKUMAR < > nskarthi...@gmail.com > >>> : > >>> > >>> > >>> > >>> Hello > >>> > >>> Spec : > >>> Container : Apache TomEE PLUS -10.0.1 > >>> Java : 22 > >>> Ide : Eclipse IDE > >>> O/s : Win-10 > >>> Browser : Firefox > >>> RESTClient : PostMan > >>> > >>> a) Process > >>> A simple Web GET request to REST Web Service used top parse > >> Folder and return with results. > >>> The request fails thru the BROWSER but passes thru RESTClient > >>> > >>> > >>> b) Problem > >>> Ajax Submission of a JSON.Stringified on GET type is returning > "HTTP > >> 400 Bad Request" ( Image attached for reference ) > >>> As suggested Added thy Relaxation char to the Server.xml > >>> Tomee/conf/Server.xml : <Connector connectionTimeout="20000" > >> maxParameterCount="1000" port="8080" protocol="HTTP/1.1" > >> redirectPort="8443" > >>> server="Apache TomEE" xpoweredBy="false" > >> relaxedPathChars=" [ ] { } ^ | " relaxedQueryChars=" [ ] { } ^ | " > /> > >>> Ajax Script : > >>> function > >> ajaxProcessContentjson(urljspVal,dataValue,httStatus){ > >>> var InstMesg = ''; > >>> $.ajax({ > >>> type : "GET", > >>> url : urljspVal, > >>> data : > >> JSON.stringify(dataValue), > >>> async : false, > >>> global : false, > >>> cache : false, > >>> dataType : "json", > >>> contentType : > >> "application/json", > >>> success : > >> function(responseObject, textStatus, jqXHR) { > >>> console.log("AJAX > >> PASS" + jqXHR.status); > >>> }, > >>> error : > >> function(responseObject, textStatus, jqXHR) { > >>> > >> console.log("AJAX FAIL : " + JSON.stringify(responseObject)); > >>> } > >>> }); > >>> return InstMesg; > >>> } > >>> > >>> Browser O/p > >>> "{ \"searcharg\" : \"jakarta.ws.rs.ext.Provider\" , > >> \"folderfilepatharg\": \"F:/MAVEN-REPO\" , \"searchextnarg\": \"jar\" , > >> \"searchstartno\": 120 , \"searchendno\" : 150}" searchobjtest.js:17:21 > < > >> http://localhost:8080/SearchWebZipJar/searchobjtest/searchobjtest.js> > >>> { "searcharg" : "jakarta.ws.rs.ext.Provider" , "folderfilepatharg": > >> "F:/MAVEN-REPO" , "searchextnarg": "jar" , "searchstartno": 120 , > >> "searchendno" : 150} > >>> > >>> > >> > XHRGEThttp://localhost:8080/SearchWebZipJar/restapiview/cmpressapi/SearchBeanGet?"{ > >> \"searcharg\" : \"jakarta.ws.rs.ext.Provider\" , \"folderfilepatharg\": > >> \"F:/MAVEN-REPO\" , \"searchextnarg\": \"jar\" , \"searchstartno\": 120 > , > >> \"searchendno\" : 150}"&_=1744261534750 < > >> > http://localhost:8080/SearchWebZipJar/restapiview/cmpressapi/SearchBeanGet?%22%7B%20%5C%22searcharg%5C%22%20:%20%5C%22jakarta.ws.rs.ext.Provider%5C%22%20,%20%5C%22folderfilepatharg%5C%22:%20%5C%22F:/MAVEN-REPO%5C%22%20,%20%5C%22searchextnarg%5C%22:%20%5C%22jar%5C%22%20,%20%5C%22searchstartno%5C%22:%20120%20,%20%5C%22searchendno%5C%22%20:%20150%7D%22&_=1744261534750 > >>> > >>> > >>> Invalid character found in the request target > >> > [/SearchWebZipJar/restapiview/cmpressapi/SearchBeanGet?%22{%20\\%22searcharg\\%22%20:%20\\%22jakarta.ws.rs.ext.Provider\\%22%20,%20\\%22folderfilepatharg\\%22:%20\\%22F:/TOOLS/APACHEMAVEN/MAVEN-REPO\\%22%20,%20\\%22searchextnarg\\%22:%20\\%22jar\\%22%20,%20\\%22searchstartno\\%22:%20120%20,%20\\%22searchendno\\%22%20:%20150}%22&_=1744256939455 > >> ]. > >>> The valid characters are defined in RFC 7230 and RFC 3986</p> > >>> > >>> Question : Chars used in json are . , { , } , / Error caused by > >> "Invalid character found in the request" > >>> > >>> Please Suggest > >>> -- > >>> with regards > >>> N.S.KARTHIK > >>> > >> > >> > > > > -- > > > > *with regards* > > *N.S.KARTHIK* > > -- *with regards* *N.S.KARTHIK*