8 Replies Latest reply on Mar 22, 2018 2:24 PM by shawkins

    Unable to add SOAP node to column

    lhoskins

      I am a newbie to Teiid. I get the following error on "Create Relational Model from Webservice" when selecting user-specific procedure:

      An error has occurred. See error log for more details.

      The node type with id ElementSymbol is invalid for teiid instance version 10.1.1

       

      The webservice request/response are valid in SOAP UI and was validated in the Teiid connection profile.  Also where is the Teiid log files? I checked the server logs but didn't see any information relating to the error message. Appreciate any help.

       

        • 1. Re: Unable to add SOAP node to column
          lhoskins

          I found this link but It doesn't say if there was a fix or an update provided.

          https://developer.jboss.org/message/979242?et=watches.email.thread#979242

           

          Error screenshot and Stack Trace

          Exception Stack Trace:

          ava.lang.IllegalStateException: A parser for teiid instance version 10 is not available

          at org.teiid.query.parser.QueryParser.createTeiidParser(QueryParser.java:76)

          at org.teiid.query.parser.QueryParser.<init>(QueryParser.java:60)

          at org.teiid.query.metadata.SystemMetadata.<init>(SystemMetadata.java:145)

          at org.teiid.query.metadata.SystemMetadata.getInstance(SystemMetadata.java:68)

          at org.teiid.query.function.metadata.FunctionMetadataValidator.validateFunctionMethods(FunctionMetadataValidator.java:72)

          at org.teiid.query.function.SystemFunctionManager.getSystemFunctions(SystemFunctionManager.java:77)

          at org.teiid.runtime.client.query.QueryService.createFunctionLibrary(QueryService.java:137)

          at org.teiid.designer.udf.UdfManager.getSystemFunctionLibrary(UdfManager.java:373)

          at org.teiid.query.ui.sqleditor.sql.SqlSyntax.init(SqlSyntax.java:93)

          at org.teiid.query.ui.sqleditor.sql.SqlSyntax.<init>(SqlSyntax.java:61)

          at org.teiid.query.ui.sqleditor.sql.SqlWordDetector.<init>(SqlWordDetector.java:25)

          at org.teiid.query.ui.sqleditor.sql.SqlCodeScanner.<init>(SqlCodeScanner.java:117)

          at org.teiid.designer.transformation.ui.editors.sqleditor.SqlSourceViewerConfiguration.getPresentationReconciler(SqlSourceViewerConfiguration.java:102)

          at org.teiid.designer.transformation.ui.editors.sqleditor.SqlTextViewer.<init>(SqlTextViewer.java:83)

          at org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.OperationsDetailsPage.createRequestSqlGroup(OperationsDetailsPage.java:436)

          at org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.OperationsDetailsPage.createRequestTab(OperationsDetailsPage.java:350)

          at org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.OperationsDetailsPage.createTabbedDetailsPanel(OperationsDetailsPage.java:321)

          at org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.OperationsDetailsPage.createControl(OperationsDetailsPage.java:260)

          at org.teiid.designer.ui.common.wizard.AbstractWizard.createPageControls(AbstractWizard.java:153)

          at org.teiid.designer.ui.common.wizard.AbstractWizard.createPageControls(AbstractWizard.java:138)

          at org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.ImportWsdlSoapWizard.createPageControls(ImportWsdlSoapWizard.java:96)

          at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:688)

          at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:1128)

          at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1181)

          at org.eclipse.jface.wizard.WizardDialog.lambda$3(WizardDialog.java:1169)

          at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

          at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1169)

          at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:864)

          at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:413)

          at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)

          at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:81)

          at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)

          at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)

          at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)

          at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)

          at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)

          at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)

          at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)

          at org.eclipse.jface.window.Window.open(Window.java:794)

          at org.eclipse.ui.internal.handlers.WizardHandler$Import.executeHandler(WizardHandler.java:158)

          at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:290)

          at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291)

          at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)

          at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

          at java.lang.reflect.Method.invoke(Unknown Source)

          at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)

          at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)

          at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)

          at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)

          at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)

          at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)

          at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)

          at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)

          at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:390)

          at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:151)

          at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)

          at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:397)

          at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)

          at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)

          at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)

          at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)

          at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)

          at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)

          at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)

          at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)

          at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)

          at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)

          at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)

          at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)

          at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)

          at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)

          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:388)

          at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

          at java.lang.reflect.Method.invoke(Unknown Source)

          at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)

          at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)

          at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

          • 2. Re: Unable to add SOAP node to column
            rareddy

            Designer support  for Teiid 10 is not available, either try some Teiid with 9.x version or try to build VDB with DDL directly .

             

            To be honest doing directly in DDL for SOAP I do not recommend  REST may be.

             

            Ramesh..

            • 3. Re: Unable to add SOAP node to column
              lhoskins

              Thanks Remesh, I will try a 9.x version first.

              • 4. Re: Unable to add SOAP node to column
                lhoskins

                I was looking at the Teiid Designer 9.x and it requires 3 downward versions of eclipse and 4 downward versions of JBOSS. If there are no other alternatives I will try the DDL or REST. Can anyone give me a starting point?

                • 5. Re: Unable to add SOAP node to column
                  rareddy

                  The current version of Designer you can use with Teiid 9.x, you do not need to downgrade the Designer versions. Why SOAP? almost everyone nowadays moving to REST style deployments. What is your use case, what you are trying to accomplish with Teiid?

                   

                  More Options.

                  1) You can build the VDB using the older versions of the Designer and Teiid, but you can always deploy it into the new versions of Teiid without issues.

                  2) If you want to use latest Teiid without Designer, I suggest you build a regular virtual stored procedure that takes the input XML per SOAP schema and parses the XML and does the processing and then returns the XML of your SOAP schema. Then you can build SOAP layer code in any other language like Java, but call into this procedure for results.

                  3) If you want to do the REST you have same restrictions with versions too, but developing without Designer becomes little simpler.

                   

                  Ramesh..

                  • 6. Re: Unable to add SOAP node to column
                    lhoskins

                    Thanks Ramesh, appreciate you walking me through the options. Maybe our best option is to convert from SOAP to REST. We have a complex legacy SOAP application that interfaces with SAP. I was trying to avoid the level of effort it would take to convert it. I will try the the older version of designer and Tiedd with the idea I can deploy the VDB once it is created and then manage it using the latest designer.

                    • 7. Re: Unable to add SOAP node to column
                      lhoskins

                      I was able to get pass the error message using the Teiid Designer 9.x per your direction. I exported and imported the database back into the 10.1 and deployed it.  I'm receiving an error when creating the data source.  I found another example while trying to understand if this issue is an isolated issue with the web service we developed.  Apparently I see the same issue using the following example provided Teiid Designer User Guide, after following it step-by-step using the provided WSDL(http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL)

                      I've been researching how to setup a data source for web service.  My guess it's not the same as MYSQL or other jdbc connectors. I came across an article stating web services requires a JCA connector?  My next question is once the data source is defined and the JDNI name is mapped to the VDB, how can I test the new database soap response. Assuming I'm using SquirrelSQL as the client where can I get the SQL statement to test?

                      I also found this link on setting up a web service as data source. Web Services as a Data Source Example - Teiid Examples - Project Documentation Editor.

                      • 8. Re: Unable to add SOAP node to column
                        shawkins

                        > Assuming I'm using SquirrelSQL as the client where can I get the SQL statement to test?

                         

                        With a VDB installed that has the ws (web services) translator configured to use the JNDI of the web services data source, you can call procedures that are exposed by the translator such as invoke and invokeHttp - Web Services Translator · Teiid Documentation