[aerogear-dev] "application/json; charset=utf-8" not supported

Corinne Krych corinnekrych at gmail.com
Tue Jun 18 04:53:19 EDT 2013


If I patch controller-aerogear with some code like

org.jboss.aerogear.controller.util.ParameterExtractor.getConsumer(....)
with snippet below:

        if (contentType.contains("application/json")) {
            contentType = "application/json";
        }


I think that for the similar to
https://issues.jboss.org/browse/AEROGEAR-1085
we should ignore subtype in content-type


I go a step further in my login request but now I get this exception from
server:

10:43:42,379 ERROR [org.jboss.aerogear.controller.log]
(http--127.0.0.1-8080-1) AG_CONTROLLER000005: Exception Message: 'User id
can not be null.': java.lang.IllegalArgumentException: User id can not be
null.
at
org.picketlink.credential.DefaultLoginCredentials.setUserId(DefaultLoginCredentials.java:44)
[picketlink-api-2.5.0.Beta4.jar:]
at
org.picketlink.credential.DefaultLoginCredentials$Proxy$_$$_WeldClientProxy.setUserId(DefaultLoginCredentials$Proxy$_$$_WeldClientProxy.java)
[picketlink-api-2.5.0.Beta4.jar:]
at
org.jboss.aerogear.security.picketlink.auth.AuthenticationManagerImpl.login(AuthenticationManagerImpl.java:52)
[aerogear-security-picketlink-1.0.1.jar:1.0.1]
at
org.jboss.aerogear.security.picketlink.auth.AuthenticationManagerImpl.login(AuthenticationManagerImpl.java:34)
[aerogear-security-picketlink-1.0.1.jar:1.0.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.7.0_15]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_15]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_15]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_15]
at
org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:44)
[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:105)
[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]


Any idea?







On 18 June 2013 10:44, Matthias Wessendorf <matzew at apache.org> wrote:

> This works:
>
>
> curl -v -b cookies.txt -c cookies.txt -H "Accept: application/json;
> charset=utf-8" -H "Content-type: application/json" -X POST -d
> '{"loginName": "john", "password":"123"}'
> http://localhost:8080/prodoctor/login
>
>
> (accept header)
>
>
>
>
> On Tue, Jun 18, 2013 at 10:35 AM, Matthias Wessendorf <matzew at apache.org>wrote:
>
>>
>>
>>
>> On Tue, Jun 18, 2013 at 10:03 AM, Corinne Krych <corinnekrych at gmail.com>wrote:
>>
>>> Seb,
>>>
>>> When debugging with a breakpoint
>>> on org.jboss.aerogear.controller.util.ParameterExtractor.java line 139, I
>>> still get consumers map containing only "application/json" and then
>>> exception get throw line l152.
>>>
>>> contentType holds "application/json; charset=utf-8"
>>>
>>> Server side issue to me.
>>>
>>> Any more idea?
>>>
>>
>>
>> Doing this CUR:
>> curl -v -b cookies.txt -c cookies.txt -H "Accept: application/json" -H
>> "Content-type: application/json; charset=utf-8" -X POST -d '{"loginName":
>> "john", "password":"123"}' http://localhost:8080/prodoctor/login
>>
>>
>> same issue (=> same exception)
>>
>>
>>
>>
>>
>>
>>>
>>>
>>> On 18 June 2013 09:53, Matthias Wessendorf <matzew at apache.org> wrote:
>>>
>>>> can you debug and see what's actually hitting the server? The Exception
>>>> is, to be honest, not meaningful :)
>>>>
>>>> -M
>>>>
>>>>
>>>> On Tue, Jun 18, 2013 at 9:19 AM, Sebastien Blanc <scm.blanc at gmail.com>wrote:
>>>>
>>>>> Sorry I though you were talking about Travis ... Hum, okay so the
>>>>> workaround don't work ... but the curl was, maybe lowercase issue, I see
>>>>> now "utf-8" and iOs maybe send "UTF-8" and controller match also the case ?
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Jun 18, 2013 at 9:14 AM, Matthias Wessendorf <
>>>>> matzew at apache.org> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 18, 2013 at 9:01 AM, Matthias Wessendorf <
>>>>>> matzew at apache.org> wrote:
>>>>>>
>>>>>>> still the failure, (both: AeroGear-iOS 1.0.1 (AFN 1.0.RC1) + the
>>>>>>> branch going to AFN 1.2.1
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ==> same exception (see my different testing iOS environments above)
>>>>>>
>>>>>> -Matthias
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 18, 2013 at 8:50 AM, Sebastien Blanc <
>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>
>>>>>>>> Oups,
>>>>>>>> I should not push code at 1 am ;)
>>>>>>>> Should be okay now
>>>>>>>> Seb
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jun 18, 2013 at 8:30 AM, Matthias Wessendorf <
>>>>>>>> matzew at apache.org> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Jun 18, 2013 at 12:56 AM, Sebastien Blanc <
>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Corinne,
>>>>>>>>>> On a route you can set different consumers (
>>>>>>>>>> http://aerogear.org/docs/guides/aerogear-controller/mediatypes.html )
>>>>>>>>>> , I've updated the Route on Prodoctor and now it seems to work. I can not
>>>>>>>>>> reproduce your ios example here on my fedora box but this curl works now :
>>>>>>>>>>
>>>>>>>>>> curl -v -b cookies.txt -c cookies.txt -H "Accept:
>>>>>>>>>> application/json" -H "Content-type: application/json; charset=utf-8" -X
>>>>>>>>>> POST -d '{"loginName": "john", "password":"123"}'
>>>>>>>>>> http://localhost:8080/prodoctor/login
>>>>>>>>>>
>>>>>>>>>> Update the repo and give it a try !
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> please push this type:
>>>>>>>>>
>>>>>>>>> import org.aerogear.prodoctor.config.CustomConsumer;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> it's missing and the build is failing
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Seb
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Jun 17, 2013 at 10:47 PM, Corinne Krych <
>>>>>>>>>> corinnekrych at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello Guys
>>>>>>>>>>>
>>>>>>>>>>> Writing code for ProDoctor demo, on client side, I'm using Xcode
>>>>>>>>>>> template for AGPush which is based on AFNetworking 121
>>>>>>>>>>>
>>>>>>>>>>> When doing my login request in iOS I bumped into the issue of
>>>>>>>>>>> having content type set to "application/json; charset=utf-8" whereas on
>>>>>>>>>>> routes (backend) only "application/json" is set which causes this exception:
>>>>>>>>>>>
>>>>>>>>>>> [application/json].': java.lang.RuntimeException:
>>>>>>>>>>> AG_CONTROLLER000012: No Consumer found for Parameter:
>>>>>>>>>>> 'Parameter[type=ENTITY, type=class
>>>>>>>>>>> org.aerogear.prodoctor.model.SaleAgent]'. The registered Consumers were:
>>>>>>>>>>> '[JsonConsumer[mediaType=application/json]]'. Please add a Consumer for one
>>>>>>>>>>> the media types supported by the route: [application/json].
>>>>>>>>>>>
>>>>>>>>>>> at
>>>>>>>>>>> org.jboss.aerogear.controller.util.ParameterExtractor.getConsumer(ParameterExtractor.java:152)
>>>>>>>>>>> [aerogear-controller-1.0.1.jar:1.0.1]
>>>>>>>>>>>
>>>>>>>>>>> at
>>>>>>>>>>> org.jboss.aerogear.controller.util.ParameterExtractor.extractArguments(ParameterExtractor.java:70)
>>>>>>>>>>> [aerogear-controller-1.0.1.jar:1.0.1]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I think we should support both  "application/json;
>>>>>>>>>>> charset=utf-8" and  "application/json". /shall we open a JIRA on AeroGear
>>>>>>>>>>> Controller to support both?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> wdyt?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Corinne
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Matthias Wessendorf
>>>>>>>>>
>>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Matthias Wessendorf
>>>>>>>
>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Matthias Wessendorf
>>>>>>
>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Matthias Wessendorf
>>>>
>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>> sessions: http://www.slideshare.net/mwessendorf
>>>> twitter: http://twitter.com/mwessendorf
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>>
>> --
>> Matthias Wessendorf
>>
>> blog: http://matthiaswessendorf.wordpress.com/
>> sessions: http://www.slideshare.net/mwessendorf
>> twitter: http://twitter.com/mwessendorf
>>
>
>
>
> --
> Matthias Wessendorf
>
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> twitter: http://twitter.com/mwessendorf
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20130618/662af3e0/attachment-0001.html 


More information about the aerogear-dev mailing list