No. Seems it validate accordingly. Why do we have such implementation ? I think its need to handle by endpoint if json pass all necessary data into post chunk.
*Dakshika Jayathilaka* Software Engineer WSO2, Inc. lean.enterprise.middleware 0771100911 On Mon, Jun 23, 2014 at 3:42 AM, Dinesh Bandara <dine...@wso2.com> wrote: > Hi Dakshika, > > Have you deployed a cartridge with the display name "MySQL" earlier ? > > > > > On Mon, Jun 23, 2014 at 8:19 AM, Nirmal Fernando <nirmal070...@gmail.com> > wrote: > >> 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/ >> > > > > -- > *Dinesh Bandara* > Software Engineer > WSO2 Inc.; http://wso2.com > lean.enterprise.middleware > >