Community
Participate
Working Groups
Build Identifier: 20100917-0705 Using Eclipse Business Intelligence and Reporting Tools SDK Version: 2.6.1.v20100709-7m9f7NFT0z0-Im5IWab4F6 Build id: v20100915-1750... We just got started off with looking into BIRT as another reporting platform for one of our application. Our application exposes its data using a Microsoft .NET WCF web service. I tried out a sample .NET ASMX web service connecting successfully in BIRT and getting to the data. But, I am failing to do the same with the WCF Web service. The SOAP Parameters, related to the WCF operation/method from our WCF Service, doesn't show up in the 'New Web Services Data Set' wizard. For some reason, the wizard is not able to identify the parameters from the WSDL, i guess. I do not see any Parameters listed in the Parameters screen. We are using basicHttpBinding that is supposed to be SOAP1.1 compliant. I was wondering if you had any experiences with connecting to WCF or if you could point me to resources that talk about connecting to WCF service from BIRT. I greatly appreciate any pointers. Reproducible: Always Steps to Reproduce: 1. On Windows 7, run the attached WCF Web Service host test program. Source code is also attached. 2. From BIRT DataSource wizard, connect to the WCF Web Service 3. The Web Service Operations (methods) are displayed. 4. Select a simple method that takes an integer parameter. 5. And navigate to Parameters page of the wizard. Result: No Parameters listed.
Created attachment 187340 [details] A Visual Studio 2008 Solution file containing the Test WCF Service and Service Host programs The attached zip file contails the Visual Studio 2008 Solution file for the test WCF Service. 1. The file in Debug\TestBirtServiceHost.exe is the WCF Service Host. 2. The file in Debug\TestBirtServiceClientApp.exe is a WinForms client app that you an use to test the webservice calls outside of Eclipse/BIRT. 3. The file in Debug\TestBirtWCFService.dll is the actual WCF Service implementation. To reproduce the bug run the Debug\TestBirtServiceHost.exe and use the URL to the Service - typically "http://localhost:9000/?wsdl". The port number in the URL can be modified in the .exe.config file(s) in the same folder.
As a workaround, we had to 'flatten' the WSDL returned by the WCF web service. To flatten the WSDL, we adapted the code from http://blogs.msdn.com/b/dotnetinterop/archive/2008/09/23/flatten-your-wsdl-with-this-custom-servicehost-for-wcf.aspx I guess, BIRT should recognize the web service without the user having to flatten the WSDL.