Hi Bhathiya, What's now shipped by default is the new streaming JSON formatter. And it did work though, when we did testing, and now even, I tested it with another scenario. Maybe there's some bug that has surfaced because of the way you created the resource. Chanika, Shameera, please check this a bit and see.
Cheers, Anjana. On Tue, Jun 17, 2014 at 2:04 AM, Bhathiya Jayasekara <[email protected]> wrote: > Hi Eranda, > > It was commented out. Instead, what was there for "application/json" is > > <messageFormatter contentType="application/json" > class="org.apache.axis2.json.gson.JsonFormatter" /> > > So, I removed the default one and set the one you said. > > Now it works!!!!, and I'm confused. :) > > What's the difference between these 2 formatters? > Are we supposed to do this configuration change if we need json support? I > couldn't find it in docs[1] though. > > [1] > https://docs.wso2.org/display/DSS321/Exposing+Data+as+REST-Style+Resources > > > Thanks, > Bhathiya > > > > > On Mon, Jun 16, 2014 at 4:51 PM, Eranda Sooriyabandara <[email protected]> > wrote: > >> Check whether the following message formatter is in axis2.xml >> >> <messageFormatter contentType="application/json" >> class="org.apache.axis2.json.JSONMessageFormatter"/> >> >> >> thanks >> Eranda >> >> >> On Tue, Jun 17, 2014 at 4:59 AM, Bhathiya Jayasekara <[email protected]> >> wrote: >> >>> Just observed that [1] works fine, while [2] gives above error. >>> >>> [1] curl *-H "accept:application/xml"* >>> http://10.213.209.1:9763/services/samples/RDBMSSample.HTTPEndpoint/getAddress/firstName/Juri/lastName/Yoshido >>> >>> [2] curl *-H "accept:application/json"* >>> http://10.213.209.1:9763/services/samples/RDBMSSample.HTTPEndpoint/getAddress/firstName/Juri/lastName/Yoshido >>> >>> Any ideas? >>> >>> Thanks, >>> >>> >>> On Mon, Jun 16, 2014 at 4:18 PM, Bhathiya Jayasekara <[email protected]> >>> wrote: >>> >>>> Hi all, >>>> >>>> I added a resource to *samples/RDBMSSample* which comes with DSS*.* >>>> >>>> <resource method="GET" >>>> path="getAddress/firstName/{firstName}/lastName/{lastName}"> >>>> <call-query href="customerAddressSQL"> >>>> <with-param name="lastName" query-param="lastName"/> >>>> <with-param name="firstName" query-param="firstName"/> >>>> </call-query> >>>> </resource> >>>> >>>> Now when I call, >>>> >>>> *GET* >>>> *http://10.213.209.1:9763/services/samples/RDBMSSample.HTTPEndpoint/getAddress/firstName/Juri/lastName/Yoshido >>>> <http://10.213.209.1:9763/services/samples/RDBMSSample.HTTPEndpoint/getAddress/firstName/Juri/lastName/Yoshido>* >>>> >>>> I get following response and backend exceptions. >>>> >>>> *Response: * {"Fault":{"Code":"","Reason":"Error while writing to >>>> the output stream using JsonWriter","Detail":""}} >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> *Backend Exception:* >>>> >>>> >>>> >>>> >>>> >>>> >>>> [2014-06-16 16:14:59,876] ERROR >>>> {org.wso2.carbon.dataservices.core.description.query.SQLQuery} - >>>> java.lang.IllegalStateException >>>> at com.google.gson.stream.JsonWriter.name(JsonWriter.java:338) >>>> at >>>> org.apache.axis2.json.gson.GsonXMLStreamWriter.writeStartJson(GsonXMLStreamWriter.java:134) >>>> at >>>> org.apache.axis2.json.gson.GsonXMLStreamWriter.writeStartElement(GsonXMLStreamWriter.java:227) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.XMLWriterHelper.writeResultElement(XMLWriterHelper.java:144) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.StaticOutputElement.executeElement(StaticOutputElement.java:250) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElementGroup.executeElement(OutputElementGroup.java:106) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.Query.writeResultEntry(Query.java:396) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:857) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2290) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.Query.execute(Query.java:282) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.CallQuery.executeElement(CallQuery.java:179) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.CallQueryGroup.executeElement(CallQueryGroup.java:111) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.description.resource.Resource.execute(Resource.java:67) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DataService.invoke(DataService.java:462) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:96) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DSOMDataSource.serialize(DSOMDataSource.java:107) >>>> at >>>> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:691) >>>> at >>>> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serializeAndConsume(OMSourcedElementImpl.java:754) >>>> at >>>> org.apache.axis2.json.gson.JsonFormatter.writeTo(JsonFormatter.java:100) >>>> at >>>> org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:411) >>>> at >>>> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:288) >>>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>>> at >>>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:45) >>>> at >>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) >>>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>>> at >>>> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144) >>>> at >>>> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139) >>>> at >>>> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837) >>>> at >>>> org.wso2.carbon.core.transports.CarbonServlet.handleRestRequest(CarbonServlet.java:303) >>>> at >>>> org.wso2.carbon.core.transports.CarbonServlet.doGet(CarbonServlet.java:152) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>>> at >>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >>>> at >>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >>>> 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(CompositeValve.java:178) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >>>> at >>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >>>> at >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >>>> at >>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >>>> at >>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>>> at java.lang.Thread.run(Thread.java:662) >>>> [2014-06-16 16:14:59,876] ERROR >>>> {org.wso2.carbon.dataservices.core.engine.DataService} - DS Fault >>>> Message: Error in 'SQLQuery.processNormalQuery' >>>> DS Code: DATABASE_ERROR >>>> Source Data Service:- >>>> Name: RDBMSSample >>>> Location: /samples/RDBMSSample.dbs >>>> Description: N/A >>>> Default Namespace: http://ws.wso2.org/dataservice/samples/rdbms_sample >>>> Current Request Name: _getgetaddress_firstname_firstname_lastname_lastname >>>> Current Params: {lastName=Yoshido, firstName=Juri} >>>> Nested Exception:- >>>> java.lang.IllegalStateException >>>> >>>> DS Fault Message: Error in 'SQLQuery.processNormalQuery' >>>> DS Code: DATABASE_ERROR >>>> Source Data Service:- >>>> Name: RDBMSSample >>>> Location: /samples/RDBMSSample.dbs >>>> Description: N/A >>>> Default Namespace: http://ws.wso2.org/dataservice/samples/rdbms_sample >>>> Current Request Name: _getgetaddress_firstname_firstname_lastname_lastname >>>> Current Params: {lastName=Yoshido, firstName=Juri} >>>> Nested Exception:- >>>> java.lang.IllegalStateException >>>> >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:864) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2290) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.Query.execute(Query.java:282) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.CallQuery.executeElement(CallQuery.java:179) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.CallQueryGroup.executeElement(CallQueryGroup.java:111) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.description.resource.Resource.execute(Resource.java:67) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DataService.invoke(DataService.java:462) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:96) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.DSOMDataSource.serialize(DSOMDataSource.java:107) >>>> at >>>> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:691) >>>> at >>>> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serializeAndConsume(OMSourcedElementImpl.java:754) >>>> at >>>> org.apache.axis2.json.gson.JsonFormatter.writeTo(JsonFormatter.java:100) >>>> at >>>> org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:411) >>>> at >>>> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:288) >>>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>>> at >>>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:45) >>>> at >>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) >>>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>>> at >>>> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144) >>>> at >>>> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139) >>>> at >>>> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837) >>>> at >>>> org.wso2.carbon.core.transports.CarbonServlet.handleRestRequest(CarbonServlet.java:303) >>>> at >>>> org.wso2.carbon.core.transports.CarbonServlet.doGet(CarbonServlet.java:152) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>>> at >>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >>>> at >>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >>>> 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(CompositeValve.java:178) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >>>> at >>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >>>> at >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >>>> at >>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >>>> at >>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>>> at java.lang.Thread.run(Thread.java:662) >>>> Caused by: java.lang.IllegalStateException >>>> at com.google.gson.stream.JsonWriter.name(JsonWriter.java:338) >>>> at >>>> org.apache.axis2.json.gson.GsonXMLStreamWriter.writeStartJson(GsonXMLStreamWriter.java:134) >>>> at >>>> org.apache.axis2.json.gson.GsonXMLStreamWriter.writeStartElement(GsonXMLStreamWriter.java:227) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.XMLWriterHelper.writeResultElement(XMLWriterHelper.java:144) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.StaticOutputElement.executeElement(StaticOutputElement.java:250) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElementGroup.executeElement(OutputElementGroup.java:106) >>>> at >>>> org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.Query.writeResultEntry(Query.java:396) >>>> at >>>> org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:857) >>>> ... 54 more >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Am I doing it wrong or is it a bug? >>>> >>>> >>>> >>>> >>>> >>>> >>>> Thanks, >>>> >>>> -- >>>> *Bhathiya Jayasekara* >>>> *Software Engineer,* >>>> *WSO2 inc., http://wso2.com <http://wso2.com>* >>>> >>>> *Phone: +94715478185 <%2B94715478185>* >>>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >>>> <http://www.linkedin.com/in/bhathiyaj>* >>>> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* >>>> *Blog: http://movingaheadblog.blogspot.com >>>> <http://movingaheadblog.blogspot.com/>* >>>> >>> >>> >>> >>> -- >>> *Bhathiya Jayasekara* >>> *Software Engineer,* >>> *WSO2 inc., http://wso2.com <http://wso2.com>* >>> >>> *Phone: +94715478185 <%2B94715478185>* >>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >>> <http://www.linkedin.com/in/bhathiyaj>* >>> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* >>> *Blog: http://movingaheadblog.blogspot.com >>> <http://movingaheadblog.blogspot.com/>* >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> >> *Eranda Sooriyabandara*Senior Software Engineer; >> Integration Technologies Team; >> WSO2 Inc.; http://wso2.com >> Lean . Enterprise . Middleware >> >> E-mail: eranda AT wso2.com >> Mobile: +94 716 472 816 >> Linked-In: http://www.linkedin.com/in/erandasooriyabandara >> Blog: http://emsooriyabandara.blogspot.com/ >> >> >> >> >> > > > -- > *Bhathiya Jayasekara* > *Software Engineer,* > *WSO2 inc., http://wso2.com <http://wso2.com>* > > *Phone: +94715478185 <%2B94715478185>* > *LinkedIn: http://www.linkedin.com/in/bhathiyaj > <http://www.linkedin.com/in/bhathiyaj>* > *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* > *Blog: http://movingaheadblog.blogspot.com > <http://movingaheadblog.blogspot.com/>* > -- *Anjana Fernando* Senior Technical Lead WSO2 Inc. | http://wso2.com lean . enterprise . middleware
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
