I am facing a issue in WSO2 ESB regarding exception handling. I have noticed that WSO2 ESB is not returning specific Error_Codes in different error scenarios. It is returning Error_Code '0' in case of endpoint failure and also in case of XSLT transformation error.
Can any expert from WSO2 explain it. Because it is very annoying that WSO2 ESB can't handle very simple error scenarios. Any explanation would be appreciated.
If we see the latest documentation of wso2 esb 4.8.1, WSO2 has defined error codes for only Transport errors and endpoint failures.
https://docs.wso2.com/display/ESB481/Error+Handling
So, for other scenarios like message validation errors or xslt transformation errors there are no pre-defined error codes from WSO2.It is annoying but we just have to live with it.. :)
Related
We have got the requirement of migrating Production environment of Datapower to WSO2. I never worked on Migration. Can anyone please let me know what would be the procedure of migrating the complete Datapower environment and also I want to know whether we can migrate only OAuth security feature of datapower to WSO2 ESB ?
Thankyou in advance !
The short answer is; No, you can't!
There are literally no common ground between DataPower and WSO2 ESB nor are there any objects that would be similar or usable between the two.
WSO2 ESB is a chunky Java server implementation while DataPower is a firmware based Appliance using configuration only.
Not sure what you mean with the OAuth security feature but, again, that is a purpose built hardware based solution in DataPower, hardened and secure, and it has no equivalent in WSO2 ESB so you will need to build your own solution for OAuth, either as a separate Java servlet/app or build it as a WSO2 plugin.
You will need to document all the services in DataPower and then build them one by one manually in WSO2 ESB.
You will also (most likely) find that many of DataPower's functions can't easily be built in WSO2 ESB...
We are evaluating Spring Integration DSL , and came up with a POC where we are sending a HTTP Post request to a Message channe also we have created a PollableChannel to receive.
We started testing with Jmeter by sending concurrent requests but for some reason
the thread which sent http request is receiving response for different thread request.
I tried searching google to find a similar kind of work to get some idea, but no luck.Even Spring Integration DSL does not have any examples on this.
Can anyone guide me through this.
Thanks for your time.
I'm attempting to utilize the Yodlee SOAP API for a web application in ASP.NET 4.5. I was under the impression that I could add a service reference to it with the url:
https://rest.developer.yodlee.com/services/services/v1.0
However, this did not work and gave me the following error message:
There was an error downloading 'https://rest.developer.yodlee.com/services/services/v1.0/_vti_bin/ListData.svc/$metadata'.
The request failed with the error message:
The service cannot be found for the endpoint reference (EPR) /services/services/v1.0/_vti_bin/ListData.svc/$metadata
--.
Metadata contains a reference that cannot be resolved: 'https://rest.developer.yodlee.com/services/services/v1.0'.
Metadata contains a reference that cannot be resolved: 'https://rest.developer.yodlee.com/services/services/v1.0'.
If the service is defined in the current solution, try building the solution and adding the service reference again.
Am I attempting to reference the Yodlee SOAP API incorrectly? We used to aggregate financial investment data with Yodlee a little over a year ago and have an old DLL utilizing the SOAP architecture which no longer works. However, Yodlee no longer lists a DLL for ASP.NET with SOAP architecture. We were hoping to utilize a majority of our old API method calls and this is why we'd like to utilize SOAP for the time being, otherwise we'd switch to REST.
If someone could please help, I'd appreciate it. Thanks.
The URL for making SOAP calls is
https://rest.developer.yodlee.com/services/services/
If you want to see the list of services, you can list it with the listServices appended to the URL as below
https://rest.developer.yodlee.com/services/services/listServices
The URL https://rest.developer.yodlee.com/services/srest/restserver/v1.0/ is for making REST calls and talk to Yodlee.
Please refer to the documentation at developer.yodlee.com for more information.
Hope this answers your question.
--Vijay
I'm exploring the use of the WSO2 API Manager for our legacy API, which is currently SOAP based. IDeally, I'd like to expose a RESTful interface to our customers and have API Manager convert that to a SOAP request that gets passed to our legacy system. Searching the WSO2 site, I see there's some way to do this using XSLT transformations, but only when using the WSo2 ESB product.
Is there a way to handle this transformation in the API Manager? How? If not, could I somehow take advantage of the ESB product and combine it with the API Manager product? Or is that overkill?
Thanks!
REST to SOAP conversion is a standout feature of the WSO2 ESB. To learn more about it look at the sample given at [1]. The Payload Factory Mediator used in this sample is a much newer type of mediator than the XSLT Mediator and is also more efficient in handling SOAP messages than XSLT Mediator.
The WSO2 API Manager is a platform for publishing, managing and governing APIs. The WSO2 API Manager is built using the componentalized Carbon framework, for which almost all components of the WSO2 ESB are utilized. Therefore technically all that can be done with the WSO2 ESB can be done by the WSO2 API Manager; however without the help of the GUI found in the WSO2 ESB; you will have to use the source view of the configuration which is xml based. But ofcourse to navigate around this obstacle you can always download the WSO2 ESB product (which is also free and open-source) and create all the necessary mediation sequences using the GUI and copy-n-paste the configuration from the WSO2 ESB to the WSO2 API Manager and you are done.
In my opinion it is the WSO2 ESB that you need. In your case I presume you just have one or a few SOAP APIs which you need to expose as REST APIs; you are looking more at the REST-SOAP conversion feature rather than the ability to manage hundreds of APIs. If you do not need the core functionalities of the API Manager such as publishing APIs, versioning, authenticating consumers, throttling based on policies, and monitoring API usage (for a complete list of features look at the product homepage at [2]), then you really do not want the API Manager. But if you have the API Management requirements you can go with WSO2 API Manager. I don't think you should go with the WSO2 API Manager just because you foresee some kind of API Management requirements coming ahead.
Using both the WSO2 ESB fronted by the WSO2 API Manager is also a solution. WSO2 even recommends this architecture if you are performing heavy mediation in the mediation layer. You can even start with the WSO2 ESB alone and later when the proper requirements come, decide to front it with the WSO2 API Manager. Fronting the WSO2 ESB with the WSO2 API Manager is a breeze.
[1] http://docs.wso2.org/wiki/display/ESB403/Sample+800+Introduction+to+REST+API
[2] http://wso2.com/products/api-manager/
It seems that WCF diagnostics is not available in SL. Is it because of limited System.Diagnostics support or something else? Anyway, how do you track client-side WCF issues when server-side diagnostics is not enough?
This is how I solved my problem of correctly obtaining exceptions at the Silverlight Client. Similar to Rus' but does not require wrapping of exceptions. Though it does require the version number to be exact in web.config (still working on solving that)
Programmatic configuration of Exception-sending in WCF
I think this article will help.
http://msmvps.com/blogs/theproblemsolver/archive/2009/01/27/returning-exception-information-to-a-silverlight-client-through-wcf.aspx
If you're getting a 'Not Found' Error the most likely cause is the cross domain access policy. What I use to try diagnose those problems is Fiddler2, and look at the raw traffic.
Are you sure that your WCF service is not faulting on the call? If something is going wrong on the server-side the returned message will be of HTTP status code 500. Due to security restrictions, the browser will not pass any non-200 messages back to the silverlight plugin which results in silverlight throwing the classic CommunicationException "The remote server returned an error: NotFound."
There are some pretty well documented work-arounds for using a WCF behavior to change the HTTP status code on the fault from 500 to 200 so silverlight will actually have access to the details of what went wrong. More info here:
http://msdn.microsoft.com/en-us/library/dd470096(VS.95).aspx
http://www.netfxharmonics.com/2009/07/Understanding-WCF-Faults-in-Silverlight-3