Discussions
Categories
Choose a Product
THRUST SERVICES
CORE APPS
CE PRODUCTS
...
Quick Links
POPULAR
HELPFUL TIPS
Groups
My Links
FOR SIGNED IN MEMBERS:
Back to website
Home
Designing Analytics Reports
Connecting to the Axis2 EchoService example
Migrateduser
<p>I am using BIRT 4.5.0 and Eclipse/Mars, and attempting a very simple ODA connection to the Axis2 EchoService example using the following configurations:</p>
<ul><li>WSDL v1.1 and SOAP v1.1</li>
<li>WSDL v1.1 and SOAP v1.2</li>
</ul><p>Both scenarios work with SoapUI, result in successful pings from the ODA Data Source dialog, and fetch available operations and input parameters from within the ODA Data Set dialogs. The issue comes up when trying to obtain a SOAP response and configure Row Mappings within the ODA Data Set dialogs. ODA gives different errors for each of these two configurations.</p>
<p> </p>
<p>Note I've selected the Axis2 Echo example service to get the mechanics figured out for integrating BIRT to Axis2 SOAP services.... just trying to get the most simplistic scenario working before moving on to more complex situations. Below is the result of this unsuccessful exercise.</p>
<p> </p>
<p>Some questions:</p>
<ul><li>Are both WSDLv1.1/SOAPv1.1 and WSDLv1.1/SOAPv1.2 officially supported by BIRT/ODA?</li>
<li>Is WSDL v1.2 officially supported by BIRT/ODA?</li>
<li>Are there any known issues connecting BIRT/ODA with web services hosted by Axis2?</li>
<li>Are there any tricks in the hand-coded WSDL's given below which I need to be aware of?</li>
<li>Other possible issues which are preventing these simple scenarios from working with BIRT/ODA?</li>
</ul><p> </p>
<p><u><strong>WSDL v1.1 and SOAP v1.1</strong></u></p>
<p>I have set up a Web service data source using the following url:</p>
<pre class="_prettyXprint">
http://localhost:9763/services/EchoService?wsdl</pre>
<p>The "Test Connection" within the Data Source configuration dialog is successful. I then attempt to create a Data Set. For this, I can successfully select available operations and select input parameters. When constructing a SOAP response, I choose the following two options:</p>
<p> </p>
<ol><li>Select SOAP Response Schema, for which I chose 'Use operation response..."</li>
<li>Select Sample SOAP response message, for which I left blank</li>
</ol><p>These are the default options which are advised within Actuate tutorials. When hitting the button to navigate from the SOAP Response Page to the Row Mapping Page, I get the following error.</p>
<pre class="_prettyXprint">
XML data source cannot be retrieved. XML data source file is invalid or the file doesn't exist.</pre>
<p>The WSDL for this configuration is given as follows:</p>
<pre class="_prettyXprint">
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://com/xyz/foundation/service/echo/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="EchoService" targetNamespace="http://com/xyz/foundation/service/echo/">
<wsdl:types>
<xsd:schema targetNamespace="http://com/xyz/foundation/service/echo/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="echoStringResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="echoResponse" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echoStringInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="echoInput" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="echoOperationRequest">
<wsdl:part element="tns:echoStringInput" name="parameter" />
</wsdl:message>
<wsdl:message name="echoOperationResponse">
<wsdl:part element="tns:echoStringResponse" name="parameter" />
</wsdl:message>
<wsdl:portType name="EchoServicePortType">
<wsdl:operation name="echoOperation">
<wsdl:input message="tns:echoOperationRequest" />
<wsdl:output message="tns:echoOperationResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoSOAP" type="tns:EchoServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="echoOperation">
<soap:operation soapAction="echoOperation" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService">
<wsdl:port binding="tns:EchoSOAP" name="EchoServicePort">
<soap:address location="http://localhost:8080/jaxws-samples/services/EchoService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
</pre>
<p>The full stack trace for this error is as follows:</p>
<div>
<pre class="_prettyXprint">
org.eclipse.datatools.connectivity.oda.OdaException: XML data source cannot be retrieved. XML data source file is invalid or the file doesn't exist.
at org.eclipse.datatools.enablement.oda.xml.ui.wizards.XPathChoosePage.populateXMLTree(XPathChoosePage.java:482)
at org.eclipse.datatools.enablement.oda.xml.ui.wizards.XPathChoosePage.refreshControls(XPathChoosePage.java:207)
at org.eclipse.datatools.enablement.oda.xml.ui.wizards.XPathChoosePage.refresh(XPathChoosePage.java:201)
at org.eclipse.datatools.enablement.oda.ws.ui.wizards.XMLTableMappingPage.refresh(XMLTableMappingPage.java:105)
at org.eclipse.datatools.enablement.oda.ws.ui.wizards.SOAPResponsePage.getNextPage(SOAPResponsePage.java:644)
at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:878)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:425)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:619)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4230)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1491)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1514)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1499)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1299)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
at org.eclipse.jface.window.Window.open(Window.java:803)
at org.eclipse.birt.report.designer.data.ui.actions.NewDataSetAction.createNewDataSet(NewDataSetAction.java:194)
at org.eclipse.birt.report.designer.data.ui.actions.NewDataSetAction.run(NewDataSetAction.java:182)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4230)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1491)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1514)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1499)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1299)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
</pre>
</div>
<p> </p>
<p> </p>
<p><u><strong>WSDL v1.1 and SOAP v1.2</strong></u></p>
<p>I have been equally unsuccessful setting up a data set for the configuration leveraging WSDL v1.1 and SOAP v1.2. The same exact steps were taken as described for the WSDLv1.1/SOAPv1.1 configuration, only I get the following error message:</p>
<pre class="_prettyXprint">
SOAP response can't be retrieved, please verify the network or SOAP Response setting.</pre>
<p>The WSDL for this configuration is as follows:</p>
<pre class="_prettyXprint">
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://com/xyz/foundation/service/echo/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="EchoService12" targetNamespace="http://com/xyz/foundation/service/echo/">
<wsdl:types>
<xsd:schema targetNamespace="http://com/xyz/foundation/service/echo/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="echoStringInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="echoInput" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echoStringResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="echoResponse" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="echoOperationRequest">
<wsdl:part element="tns:echoStringInput" name="parameter" />
</wsdl:message>
<wsdl:message name="echoOperationResponse">
<wsdl:part element="tns:echoStringResponse" name="parameter" />
</wsdl:message>
<wsdl:portType name="EchoService12PortType">
<wsdl:operation name="echoOperation">
<wsdl:input message="tns:echoOperationRequest" />
<wsdl:output message="tns:echoOperationResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoSOAP12" type="tns:EchoService12PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="echoOperation">
<soap:operation soapAction="echoOperation" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService12">
<wsdl:port binding="tns:EchoSOAP12" name="EchoService12Port">
<soap:address location="http://localhost:8080/jaxws-samples/services/EchoService12" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
</pre>
<p>There is no stack trace for the specified error for this configuration.</p>
<p> </p>
<p class=""> </p>
<p> </p>
<p> </p>
Find more posts tagged with
Comments
There are no comments yet