Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

HOWTO - Invoke Webservice using WSDL on Local File System

Avatar

Former Community Member

Hi,

I am unable to access a Web Service from our Development Environment; however I have been provided with the WSDL and all the appropriate XSDs, does anyone know how to use this to populate the Web Service Options as described in the LiveDocs for Workbench? (Details below).

  • Should the WSDL be placed on the machine of the LiveCycle Server or the same machine as Workbench?
  • If the file is at C:\WSDL\service.wsdl on the LiveCycle Server machine what URL should be provided for the WSDL URL?
  • If the file is at C:\WSDL\service.wsdl on the Workbench machine what URL should be provided for the WSDL URL?

I have tried all variants of the possible URLs on both machines and am still unable to get this to work.

Many Thanks

Darren

About Web Service Settings

The Web Service Settings dialog box enables you to create the SOAP message to send to the web service for invoking a web service operation. After you provide the URL to the web service definition, Web Service Settings interprets the definition and it will populate other values on the tab, enabling you to select the web service operation to invoke. Based on operation that you select, a template of the SOAP request message is generated. You then insert values into the message as required.

Web Service Settings also enables you to test your invocation request by sending a test message and displaying the response message that the web service sends.

Settings

Use the settings tab to provide a link to the web service definition and to provide the information required to connect to a web service.

WSDL URL

The URL of the web service definition. The definition is written in web service definition language (WSDL) and contains all the information that web service clients need to call web service operations and process the response.

Note:   The LiveCycle ES server must be able to access the WSDL URL at run time and at design time.

If you have access to the service, click Load after you enter the value for WSDL URL. Clicking Load causes Web Service Settings to read and interpret the definition. It then automatically populates many of the properties on the Settings and Request tab.

Tip:   If your development environment has network limitations that prevent you from accessing the web service, you can save a copy of the WSDL file to the local file system, and load that file to populate the other property values. After loading the file, you should replace the value for the WSDL URL property with the actual URL to the service definition.

1 Accepted Solution

Avatar

Correct answer by
Former Community Member

Based upon the WSDL content created when you load  http://thewebservice?wsdl in the WebService settings, copy-and-paste the content of the property 'WSDL Content' into a text editor and save the file to your desktop. The WSDL URL can then be changed to point to the file on your desktop.

For example, if I saved your WSDL to my Windows 7 desktop the file reference would be file:///C:/Users/stwalker/Desktop/thewebservice.wsdl. I would then change the WebService WSDL URL to file:///C:/Users/stwalker/Desktop/thewebservice.wsdl and load.

Steve

View solution in original post

4 Replies

Avatar

Former Community Member

So you have a LiveCycle ES process and you want to invoke that process via the SOAP endpoint?

What type of client is consuming the .wsdl and making the SOAP request?

Steve

Avatar

Former Community Member

Hi Steve,

I have a LiveCycle process which needs to connect to an external Web Service using the Foundation - Web Service Component (the LiveCycle Process needs to invoke a Web Service rather than the other way round). I want to complete all of the Web Service Options in advance of connecting to the service using an already provided copy of the WSDL and the XSDs (the Web Service is still under Development but the WSDL and Types have been defined, waiting for the web service to be fully developed is not an option).

I have access to the WSDL and instead of entering http://thewebservice?wsdl into the WSDL URL box on the Web Service Options I want to enter file://localhost/thewebservice.wsdl so that I can complete development of the process i.e. population of the Request, Port, Operation etc leaving just the Service URL to be completed.

The Workbench Documentation states that this can be done but does not provide detailed information on where the WSDL (file) and XSDs (files) should be placed and what URL should be used to access them.

Darren

Avatar

Correct answer by
Former Community Member

Based upon the WSDL content created when you load  http://thewebservice?wsdl in the WebService settings, copy-and-paste the content of the property 'WSDL Content' into a text editor and save the file to your desktop. The WSDL URL can then be changed to point to the file on your desktop.

For example, if I saved your WSDL to my Windows 7 desktop the file reference would be file:///C:/Users/stwalker/Desktop/thewebservice.wsdl. I would then change the WebService WSDL URL to file:///C:/Users/stwalker/Desktop/thewebservice.wsdl and load.

Steve

Avatar

Former Community Member

Thanks Steve,

I placed the file containing the WSDL definition on the machine hosting LiveCycle rather than my Desktop and could access using a file URL as shown below.

The following has evaluated to null or missing: ==> liqladmin("SELECT id, value FROM metrics WHERE id = 'net_accepted_solutions' and user.id = '${acceptedAnswer.author.id}'").data.items [in template "analytics-container" at line 83, column 41] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign answerAuthorNetSolutions = li... [in template "analytics-container" at line 83, column 5] ----