Hi Bhathiya, I just tried with a similar scenario in a fresh pack. But it is working fine. Can you please send the data service configuration
Thanks On Tue, Jun 17, 2014 at 11:37 AM, Anjana Fernando <[email protected]> wrote: > 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 > -- Best Regards.. Chanika Geeganage Software Engineer WSO2, Inc.; http://wso2.com
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
