Correction on my part, I misread the spec earlier.

Hemika Kodikara
Software Engineer
WSO2 Inc.
lean . enterprise . middleware
http://wso2.com

Mobile : +94777688882

On Mon, Aug 1, 2016 at 7:14 PM, Afkham Azeez <[email protected]> wrote:

> Header field names are case *insensitive*. So I think we have to fix this
> in MSF4J.
>
> *HTTP header* names are *case*-*insensitive*, according to RFC 2616: 4.2:
> Each*header* field consists of a name followed by a colon (":") and the
> field value. Field names are *case*-*insensitive*.
>
> On Tue, Aug 2, 2016 at 4:44 AM, Hemika Kodikara <[email protected]> wrote:
>
>> Hi Nadeeshaan,
>>
>> I faced the same issue with Advanced REST Client, its lowering case for
>> message header keys when sending requests. Message headers must be case
>> sensitive according to spec[1].
>>
>> [1] - https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
>>
>> Regards,
>> Hemika
>>
>> Hemika Kodikara
>> Software Engineer
>> WSO2 Inc.
>> lean . enterprise . middleware
>> http://wso2.com
>>
>> Mobile : +94777688882
>>
>> On Mon, Aug 1, 2016 at 12:32 PM, Rajith Vitharana <[email protected]>
>> wrote:
>>
>>> Hi Nadeeshan,
>>>
>>> As I remember, I also faced some difficulties with sending requests in
>>> latest rest client, for example AFAIR it sends content-type header with GET
>>> requests, these were working fine in earlier REST client implementations,
>>> but seems they are broken in latest somehow.
>>>
>>> Thanks,
>>>
>>> On Mon, Aug 1, 2016 at 10:58 PM, Nadeeshaan Gunasinghe <
>>> [email protected]> wrote:
>>>
>>>> Hi Azeez, Kasun,
>>>>
>>>> This works fine with the Post Man and the curl. With the Advanced REST
>>>> Client only this issue occurred. Seems like that client sends the request
>>>> by lowering the case of the headers.
>>>>
>>>> Thanks,
>>>>
>>>> *Nadeeshaan Gunasinghe*
>>>> Software Engineer, WSO2 Inc. http://wso2.com
>>>> +94770596754 | [email protected] | Skype: nadeeshaan.gunasinghe
>>>> <#m_-7154061025406337590_m_8260775494192340682_m_8585129498015183330_m_576071181468296572_>
>>>> <http://www.facebook.com/nadeeshaan.gunasinghe>
>>>> <http://lk.linkedin.com/in/nadeeshaan>  <http://twitter.com/Nadeeshaan>
>>>>   <http://nadeeshaan.blogspot.com/>
>>>> Get a signature like this: Click here!
>>>> <http://ws-promos.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS9lbWFpbC1pbnN0YWxsP3dzX25jaWQ9NjcyMjk0MDA4JnV0bV9zb3VyY2U9ZXh0ZW5zaW9uJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPXByb21vXzU3MzI1Njg1NDg3Njk3OTIiLCAiZSI6ICI1NzMyNTY4NTQ4NzY5NzkyIn0=&u=638972769570006>
>>>>
>>>> On Mon, Aug 1, 2016 at 10:39 PM, Afkham Azeez <[email protected]> wrote:
>>>>
>>>>> We test with PostMan and it works. No magic here. Just send the proper
>>>>> request from whatever the tool.
>>>>>
>>>>> On Mon, Aug 1, 2016 at 10:20 PM, Nadeeshaan Gunasinghe <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Azees, Thusitha,
>>>>>>
>>>>>> Thanks for the prompt reply. When used the curl in order to invoke
>>>>>> the service, it worked fine. The issue could only observe with the 
>>>>>> Advanced
>>>>>> REST Client used to invoke the service.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> *Nadeeshaan Gunasinghe*
>>>>>> Software Engineer, WSO2 Inc. http://wso2.com
>>>>>> +94770596754 | [email protected] | Skype: nadeeshaan.gunasinghe
>>>>>> <#m_-7154061025406337590_m_8260775494192340682_m_8585129498015183330_m_576071181468296572_m_-5747302383305428828_m_-7398431186153042768_>
>>>>>> <http://www.facebook.com/nadeeshaan.gunasinghe>
>>>>>> <http://lk.linkedin.com/in/nadeeshaan>
>>>>>> <http://twitter.com/Nadeeshaan>  <http://nadeeshaan.blogspot.com/>
>>>>>> Get a signature like this: Click here!
>>>>>> <http://ws-promos.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS9lbWFpbC1pbnN0YWxsP3dzX25jaWQ9NjcyMjk0MDA4JnV0bV9zb3VyY2U9ZXh0ZW5zaW9uJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPXByb21vXzU3MzI1Njg1NDg3Njk3OTIiLCAiZSI6ICI1NzMyNTY4NTQ4NzY5NzkyIn0=&u=777841174620847>
>>>>>>
>>>>>> On Mon, Aug 1, 2016 at 10:08 PM, Afkham Azeez <[email protected]> wrote:
>>>>>>
>>>>>>> Follow the addStock method in this sample:
>>>>>>> https://github.com/wso2/msf4j/blob/master/samples/stockquote/fatjar/src/main/java/org/wso2/msf4j/example/StockQuoteService.java#L108
>>>>>>>
>>>>>>> Then;
>>>>>>> curl -v -X POST -H "Content-Type:application/json" -d
>>>>>>> '{"symbol":"GOOG","name":"Google Inc.", "high":190.23, "low":187.45}'
>>>>>>> http://localhost:8080/stockquote
>>>>>>>
>>>>>>> On Mon, Aug 1, 2016 at 9:28 PM, Nadeeshaan Gunasinghe <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> When I try to execute the following sample [1] service's POST
>>>>>>>> operation I could observe the bellow exception.
>>>>>>>>
>>>>>>>> *java.lang.IllegalArgumentException: argument type mismatch*
>>>>>>>> * at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)*
>>>>>>>> * at
>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)*
>>>>>>>> * at
>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)*
>>>>>>>> * at java.lang.reflect.Method.invoke(Method.java:497)*
>>>>>>>> * at
>>>>>>>> org.wso2.msf4j.internal.router.HttpMethodInfo.invoke(HttpMethodInfo.java:108)*
>>>>>>>> * at
>>>>>>>> org.wso2.msf4j.internal.MSF4JMessageProcessor.dispatchMethod(MSF4JMessageProcessor.java:129)*
>>>>>>>> * at
>>>>>>>> org.wso2.msf4j.internal.MSF4JMessageProcessor.receive(MSF4JMessageProcessor.java:73)*
>>>>>>>> * at
>>>>>>>> org.wso2.carbon.transport.http.netty.listener.WorkerPoolDispatchingSourceHandler$1.run(WorkerPoolDispatchingSourceHandler.java:127)*
>>>>>>>> * at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)*
>>>>>>>> * at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)*
>>>>>>>> * at java.lang.Thread.run(Thread.java:745)*
>>>>>>>>
>>>>>>>> According to the sample service method I am going to capture the
>>>>>>>> json payload as an object passed to the method as follows.
>>>>>>>>
>>>>>>>> @POST
>>>>>>>> @Path("/test")
>>>>>>>> public Response post(TestPayload testPayloadBody) {
>>>>>>>>     // TODO: Implementation for HTTP POST request
>>>>>>>>     System.out.println("POST invoked ====== " +testPayloadBody);
>>>>>>>>     return Response.ok().entity(testPayloadBody).build();
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> After further debugging the code, could find that the arguments
>>>>>>>> list passed at [2] contains a string. But according to the 
>>>>>>>> implementation
>>>>>>>> it should be a *TestPayload *object. If we observe at [3] the
>>>>>>>> headers Map's keys are all in lowercase. In order to get the header 
>>>>>>>> from
>>>>>>>> the map, we use the constant from* javax.ws.rs.core.Headers, *there
>>>>>>>> the CONTENT_TYPE constant is not in all lowercase and Due to this 
>>>>>>>> reason *contentTypeHeaderStr
>>>>>>>> *becomes null and leads to convert the object to a String by the
>>>>>>>> default text formatter, based on the wild card content-type [4].
>>>>>>>>
>>>>>>>> [1]
>>>>>>>> https://drive.google.com/a/wso2.com/folderview?id=0Bx7aKS6MDJqSVDhVSTdWZ1JBVGc&usp=sharing
>>>>>>>> [2]
>>>>>>>> https://github.com/wso2/msf4j/blob/master/core/src/main/java/org/wso2/msf4j/internal/router/HttpMethodInfo.java#L108
>>>>>>>> [3]
>>>>>>>> https://github.com/wso2/carbon-messaging/blob/master/components/src/main/java/org/wso2/carbon/messaging/CarbonMessage.java#L162
>>>>>>>> [4]
>>>>>>>> https://github.com/wso2/msf4j/blob/master/core/src/main/java/org/wso2/msf4j/internal/router/HttpResourceModelProcessor.java#L158
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> *Nadeeshaan Gunasinghe*
>>>>>>>> Software Engineer, WSO2 Inc. http://wso2.com
>>>>>>>> +94770596754 | [email protected] | Skype: nadeeshaan.gunasinghe
>>>>>>>> <#m_-7154061025406337590_m_8260775494192340682_m_8585129498015183330_m_576071181468296572_m_-5747302383305428828_m_-7398431186153042768_m_1214838822956125518_m_-746156207640328338_>
>>>>>>>> <http://www.facebook.com/nadeeshaan.gunasinghe>
>>>>>>>> <http://lk.linkedin.com/in/nadeeshaan>
>>>>>>>> <http://twitter.com/Nadeeshaan>  <http://nadeeshaan.blogspot.com/>
>>>>>>>> Get a signature like this: Click here!
>>>>>>>> <http://ws-promos.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS9lbWFpbC1pbnN0YWxsP3dzX25jaWQ9NjcyMjk0MDA4JnV0bV9zb3VyY2U9ZXh0ZW5zaW9uJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPXByb21vXzU3MzI1Njg1NDg3Njk3OTIiLCAiZSI6ICI1NzMyNTY4NTQ4NzY5NzkyIn0=&u=543026424429568>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Afkham Azeez*
>>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>>> * <http://www.apache.org/>*
>>>>>>> *email: **[email protected]* <[email protected]>
>>>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: *
>>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>>> *twitter: **http://twitter.com/afkham_azeez*
>>>>>>> <http://twitter.com/afkham_azeez>
>>>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>>
>>>>>>> *Lean . Enterprise . Middleware*
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Afkham Azeez*
>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>> * <http://www.apache.org/>*
>>>>> *email: **[email protected]* <[email protected]>
>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: *
>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>> *twitter: **http://twitter.com/afkham_azeez*
>>>>> <http://twitter.com/afkham_azeez>
>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>
>>>>> *Lean . Enterprise . Middleware*
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> [email protected]
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Rajith Vitharana
>>>
>>> Senior Software Engineer,
>>> WSO2 Inc. : wso2.com
>>> Mobile : +94715883223
>>> Blog : http://lankavitharana.blogspot.com/
>>> <http://wso2.com/signature>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> *Afkham Azeez*
> Director of Architecture; WSO2, Inc.; http://wso2.com
> Member; Apache Software Foundation; http://www.apache.org/
> * <http://www.apache.org/>*
> *email: **[email protected]* <[email protected]>
> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: *
> *http://blog.afkham.org* <http://blog.afkham.org>
> *twitter: **http://twitter.com/afkham_azeez*
> <http://twitter.com/afkham_azeez>
> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
> <http://lk.linkedin.com/in/afkhamazeez>*
>
> *Lean . Enterprise . Middleware*
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to