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

Reply via email to