Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session

How to pass WSDL URL to Webservice:Invoke Web Service in workflow

Avatar

Level 4

REPOSTED IN LiveCycle Workbench ES

I have a workflow with 1 step, WebService:Invoke Web Service.  I'd like to be able to pass a string parameter of the end point url to the WSDL URL parameter in the WebService Setting dialogue box as oppose to passing the actual url (http://machine/some_service.svc?wsdl).

The reason is as we migrate the workflow between environments DEV, TEST, etc, we don't want to have to reopen the workflow in each env and update the DEV, TEST end point.

I  tried the following with no success

1.       Create a parameter devURL of type String

2.       By default, set the value to http://machine/some_service.svc?wsdl

3.       Goto the web service call step and set the WSDL URL to the /process_data/@devURL

I get the error:

java.io.FileNotFoundException: \process_data\@devURL

        at org.jboss.net.protocol.file.FileURLConnection.connect(FileURLConnection.java:94)

        at org.jboss.net.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:103)

        at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)

        at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)

        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)

        at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:369)

        at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:420)

        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:482)

        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)

        at java.lang.Thread.run(Thread.java:595)

I don't believe the WSDL URL parameter can even accept a parameter like the User Name + Password parameters.

Is this possible?  OR how else can this be achieved?

4 Replies

Avatar

Former Community Member

I am confused ......the wsdl is not something that can be changed it is based on the machine name wehere the program runs and the port that is being used (i.e. http://machinename:portnumber/soap/services/processname?wsdl). When you move the orchestration from one machine to another (dev to test to production) it is the machine name or port that changes. the rets of the wsdl stays exactly the same. So it is up to the program making the call to the web service to adjust and call the one in dev or test or production. In most of the environments that I have seen the call to the WS is being done from a form. The form is programmed in such a way that the wsdl is built on the fly and the appropriate calls are made (based on whether the user wants to acces dev, test or production).

Make sense?

Paul

Avatar

Level 4

You are correct.  Only the machine name changes, the rest of the service name remains the same as we move between env DEV, TEST, etc.

In our implementation, we are not calling webservices from the form but instead have a watched folder where all pdfs are dropped.  The pdfs have xsd mapped to them.  The workbench process applies a XSLT and calls the corresponding web service.

I also reposted in the Workbench forum and jasmin has suggested using the WebServiceSettingBean variable which I am trying to get working.

Avatar

Level 4

As per jasmin's post on the workbench forum the problem has been resolved.

Under the Web Service Options change the 'Option' to use 'variable' instead of 'literal'. Then click on the green + and it'll create a variable of type WebServiceSettingBean.

You can use a setValue before the web service step to configure that variable properly.

Jasmin

Avatar

Former Community Member

Wouldn't you have a different watch folder for each of those environments?

Paul