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*
*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