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