Topic
10 replies Latest Post - ‏2009-08-26T14:26:08Z by mburati
SystemAdmin
SystemAdmin
181 Posts
ACCEPTED ANSWER

Pinned topic A soaplab web service widget

‏2009-07-30T14:26:10Z |
Hi,
I'm trying to create a widget including a web service deployed by Soaplab. I tried the Web Service Multiple Operations builder but it can't fetch the wsdl of the service because it is a soaplab-typed web service.

roberto
Updated on 2009-08-26T14:26:08Z at 2009-08-26T14:26:08Z by mburati
  • mburati
    mburati
    30 Posts
    ACCEPTED ANSWER

    Re: A soaplab web service widget

    ‏2009-07-30T14:52:31Z  in response to SystemAdmin
    I'm sorry, but we're going to need a little more information than that in order to help.

    - What do you mean it can't fetch it?
    Does it fail to find it?
    Does it fetch it but then not show you the operations?
    Does it fetch it but then give you an error/exception (and if so, then what error/exception are you getting)?

    - Are you able to fetch it with the Web Service Call builder?

    ..mb1
    • SystemAdmin
      SystemAdmin
      181 Posts
      ACCEPTED ANSWER

      Re: A soaplab web service widget

      ‏2009-07-30T15:07:57Z  in response to mburati
      yes, you're right...

      Both the Web service call builder and The web service multiple operation builder find the wsdl on the remote site, and they both fail in returning the available operations of the web service.

      The exception is a java.lang.nullpointer one and details refer to the com.bowstreet.designer.ui 6.1.2 plugin...

      the wsdl file is here
      http://www.ebi.ac.uk:80/soaplab/typed/services/nucleic_translation.transeq?wsdl

      roberto
      • SystemAdmin
        SystemAdmin
        181 Posts
        ACCEPTED ANSWER

        Re: A soaplab web service widget

        ‏2009-07-30T15:25:11Z  in response to SystemAdmin
        moreover, the web service works well, I've tested it with the Web Service Explorer.

        bye
        • mburati
          mburati
          30 Posts
          ACCEPTED ANSWER

          Re: A soaplab web service widget

          ‏2009-07-30T15:42:08Z  in response to SystemAdmin
          What version of WPF are you using (including fixpack level)?

          That would certainly seem to be a bug. If this is blocking your work, I suggest contacting customer support to open a PMR.

          ..mb1
        • SystemAdmin
          SystemAdmin
          181 Posts
          ACCEPTED ANSWER

          Re: A soaplab web service widget

          ‏2009-07-30T16:13:06Z  in response to SystemAdmin
          I'm using the Lotus Widget Factory Designer v. 6.1.2

          thank you

          roberto
          • mburati
            mburati
            30 Posts
            ACCEPTED ANSWER

            Re: A soaplab web service widget

            ‏2009-07-31T13:44:14Z  in response to SystemAdmin
            Is there any chance that they've changed/fixed something in that WSDL in the last day or so?

            I tried to fetch that WSDL once quickly when you first posted that URL and saw an error that might have been what you were reporting, but didn't have time to really look at it then.

            Since then, I've tried it late yesterday and then again this morning (with both LWF and WPF Designers) and am not seeing the error on fetching the WSDL (it shows me the operations instead), using the Web Service Call builder.

            Can you try it again (restart Designer just in case, create a new model, new Web Service Call builder call, and fetch that WSDL) just to see if maybe something's changed in the WSDL?

            Note, another option, since you're using LWF, might be to use the IBM Mashup Center HUB to consume the web service and then expose it as a HUB Feed, and consume that via the LWF REST Service Call builder.

            ..mb1
            • SystemAdmin
              SystemAdmin
              181 Posts
              ACCEPTED ANSWER

              Re: A soaplab web service widget

              ‏2009-08-04T16:02:29Z  in response to mburati
              Hi,

              I'm a colleague of roberto and I'm working with him on the same widget.
              I've tried one more time the WSDL as you suggested... and it works today!

              Now I've another problem... I've added a Web Service Call builder... it can correctly fetch the WSDL file... what should I do now in order to have my widget running?

              Is there any documentation I can use that descibe main steps? I had a look at the help file but I cannot understand exaclty what I should do... At the moment I get the following error message "Main action was not found".

              Thanks in advance for your support,

              Antonella
              • mburati
                mburati
                30 Posts
                ACCEPTED ANSWER

                Re: A soaplab web service widget

                ‏2009-08-05T14:00:30Z  in response to SystemAdmin
                It sounds like you're fairly new to Lotus Widget Factory, and I'm guessing also to WebSphere Portlet Factory.

                I suggest going through the tutorials and samples first, and also the WebSphere Portlet Factory Wiki (eg, the Learning Roadmap) which also mostly applies to Lotus Widget Factory (both products are built from the same base):
                http://www-10.lotus.com/ldd/pfwiki.nsf

                Once you understand the samples and the local Consumer/Provider mechanisms, it'll make more sense how you do something with the local Data Service that the Web Service Call builder adds to your model's webapp. For instance, you can add a Service Definition builder to define the local service, then a Service Operation builder for the data service created by the WSC builder, and then if you turn on testing support in the Service Definition builder you may then be able to run your service provider model with an auto-generated test UI. If that all works, you can then create a Consumer model and consume that provider with Service Consumer and either View and Form or other UI builders to create the custom UI for your app.

                ..mb1
                • SystemAdmin
                  SystemAdmin
                  181 Posts
                  ACCEPTED ANSWER

                  Re: A soaplab web service widget

                  ‏2009-08-26T13:02:08Z  in response to mburati
                  Hi,
                  probably something has changed, we don't know what, but once I fetch the wsdl and operations are shown, the following errors appear (I translate):

                  1)
                  describe_arg1_dummy-empty-part is not a WebApp valid object name. The name must be a valid Java identifier and cannot contain spaces

                  2)
                  Lotus Widget Factory Builder error
                  This builder call caused the following exception: java.lang.NullPointerException
                  java.lang.NullPointerException
                  at com.bowstreet.builders.webapp.service.OperationGenerator.initializeAndCheckInputs(OperationGenerator.java:899)
                  at com.bowstreet.builders.webapp.service.OperationGenerator.generateImplementation(OperationGenerator.java:106)
                  at com.bowstreet.builders.webapp.service.ServiceMetadata.generateOperationImplementation(ServiceMetadata.java:115)
                  at com.bowstreet.builders.webapp.ServiceOperationBuilder.doBuilderCall(ServiceOperationBuilder.java:253)
                  at com.bowstreet.builders.webapp.foundation.WebAppGenHandler.doBuilderCall(WebAppGenHandler.java:418)
                  at com.bowstreet.generation.implementation.BaseGenContext.internalInvokeBuilder(BaseGenContext.java:184)
                  at com.bowstreet.generation.implementation.BaseGenContext.invokeBuilder(BaseGenContext.java:294)
                  at com.bowstreet.generation.implementation.BaseGenContext.invokeBuilder(BaseGenContext.java:145)
                  at com.bowstreet.builders.BaseBuilderAPI.invokeBuilder(BaseBuilderAPI.java:99)
                  at com.bowstreet.builders.webapp.WSMultiOpBuilder.createWebServices(WSMultiOpBuilder.java:251)
                  at com.bowstreet.builders.webapp.WSMultiOpBuilder.doBuilderCall(WSMultiOpBuilder.java:102)
                  at com.bowstreet.builders.webapp.foundation.WebAppGenHandler.doBuilderCall(WebAppGenHandler.java:418)
                  at com.bowstreet.generation.implementation.BaseGenContext.internalInvokeBuilder(BaseGenContext.java:184)
                  at com.bowstreet.generation.implementation.BaseGenContext.performGenerationPhase(BaseGenContext.java:476)
                  at com.bowstreet.generation.GenerationManager.generate(GenerationManager.java:183)
                  at com.bowstreet.generation.GenerationManager.generate(GenerationManager.java:82)
                  at com.bowstreet.designer.model.ModelAccess.generate(ModelAccess.java:265)
                  at com.bowstreet.designer.model.ModelContext.generate(ModelContext.java:386)
                  at com.bowstreet.designer.model.ModelContext.updateAndNotify(ModelContext.java:209)
                  at com.bowstreet.designer.model.ModelContext.replaceBuilderCall(ModelContext.java:805)
                  at com.bowstreet.designer.builders.BuilderCallEditorActionHandler.apply(BuilderCallEditorActionHandler.java:88)
                  at com.bowstreet.designer.eclipse.editors.BuilderCallEditorPage$BuilderCallTabItem$BCETabActionHandler.apply(BuilderCallEditorPage.java:139)
                  at com.bowstreet.designer.eclipse.editors.BuilderCallEditorPage$BuilderCallTabItem$BCETabApplyHandler.actionPerformed(BuilderCallEditorPage.java:269)
                  at com.bowstreet.designer.eclipse.editors.BuilderCallEditorPage$5.widgetSelected(BuilderCallEditorPage.java:972)
                  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
                  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
                  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
                  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
                  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
                  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
                  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
                  at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
                  at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
                  at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
                  at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
                  at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
                  at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
                  at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
                  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
                  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
                  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
                  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:618)
                  at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
                  at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
                  at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
                  transeq_ws_01.model Emboss_ws_02/WebContent/WEB-INF/models Web Service Multiple Operations:transeq_ws_mo Errore builder Lotus Widget Factory
                  • mburati
                    mburati
                    30 Posts
                    ACCEPTED ANSWER

                    Re: A soaplab web service widget

                    ‏2009-08-26T14:26:08Z  in response to SystemAdmin
                    It looks like the WSDL now includes an operation called describe which has an argument named "dummy-empty-part".
                    It's likely the hyphens that are causing the problem. It's not clear why, but all the other part names in that WSDL use camelCase to separate the individual words that make up the part name, but that one part name uses hyphens, which appears to be causing the problem.

                    If you have any control over that WSDL or know who does, you might suggest making the part names consistently use camelCase (as the rest of the WSDL parts and the schema elements and types do in that WSDl/Schema set).

                    I don't see anything in the WS-I interop spec that disallows such part names though, so you may want to contact customer support to report the issue that the web service builders have with that part name and see if anything can be done about it, if you do not have control over that WSDL.

                    ..mb1