I think this happens after the introduction of json validators.

On Mon, Jun 23, 2014 at 5:56 AM, Dakshika Jayathilaka <daksh...@wso2.com>
wrote:

> Hi,
>
> Do we have any specific order on this? here is my sample json
>
> {
>     "type": "mysql",
>     "provider": "data",
>     "host": "apachestratos.org",
>     "displayName": "MySQL",
>     "description": "MySQL Cartridge",
>     "version": "5.5",
>     "multiTenant": "false",
>     "portMapping": [
>     {
>       "protocol": "http",
>       "port": "80",
>       "proxyPort": "8280"
>     }
>     ],
>       "deployment": {
>       },
>       "iaasProvider": [
>         {
>           "type": "ec2",
>           "imageId": "ap-southeast-1/ami-42297810",
>           "maxInstanceLimit": "4",
>           "property": [
>             {
>              "name": "instanceType",
>              "value": "m1.medium"
>             },
>             {
>              "name": "keyPair",
>              "value": "manula"
>             }
>           ]
>         }
>       ],
>       "loadBalancer": {
>         "type": "lb",
>         "property": {
>           "name": "default.load.balancer",
>           "value": "true"
>         }
>       }
> }
>
>
> I'm loading this content via python code, default python *json.load *change
> above order according to key.
>
> {"displayName":"MySQL","description":"MySQL Cartridge","deployment":{},"
> multiTenant":"false","portMapping":[{"proxyPort":"
> 8280","protocol":"http","port":"80"}],"iaasProvider":[{"
> maxInstanceLimit":"4","property":[{"name":"instanceType","value":"
> RegionOne/2"},{"name":"keyPair","value":"mytest"}],"
> type":"openstack","imageId":"RegionOne/2f9bdcb3-6a7c-4b31-
> a978-713a08c84b3c"}],"host":"apachestratos.org","version":"
> 5.5","provider":"data","type":"mysql","loadBalancer":{"
> property":{"name":"default.load.balancer","value":"true"},"type":"lb"}}
>
> when i send reordered json via curl. i'm getting below error on Stratos.
>
>
> [2014-06-22 13:54:50,905]  WARN
> {org.apache.cxf.jaxrs.provider.AbstractJAXBProvider} -
>  javax.xml.bind.UnmarshalException
>  - with linked exception:
> [org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content
> was found starting with element 'displayName'. One of '{type}' is expected.]
>  at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:425)
>  at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:332)
>  at
> org.apache.cxf.jaxrs.provider.json.JSONProvider.readFrom(JSONProvider.java:234)
>  at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1288)
> at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1239)
>  at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:790)
>  at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:749)
> at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:236)
>  at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:101)
>  at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>  at
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>  at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
> at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
>  at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
>  at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:159)
> at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>  at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
> at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>  at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>  at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>  at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>  at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>  at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(
>
>
> *Dakshika Jayathilaka*
> Software Engineer
> WSO2, Inc.
> lean.enterprise.middleware
> 0771100911
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to