Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

Invoke webservice (authentication issue)

Jan_Babicky
Level 3
Level 3

Hi,

I am facing wierd thing. I have a invoke WSDL step in the process and for some reason when I try to load the WSDL URL I get 401 error. However if I open web browser on the same machine and paste the URL to the address field and supply correct credentials, the WSDL is listed.

Any thoughts why LC won't load the WSDL file?

Thanks for prompt reply

J.

12 Replies
_Nith_
Level 10
Level 10

Did you enter your credentials within double quotes?

Nith

Jan_Babicky
Level 3
Level 3

Hi Nith,

I believe that in the invoke WSDL step in workbench you don't have to enter this info in double-quotes.

I am affraid that this has something to do with the DIGEST authentication...

J

_Nith_
Level 10
Level 10

Please note that the type of input for those fields is XPATH, so you must enter those values in double quotes.

You can enter values without quotes only if the type of input is LITERAL.

Forgive me if my understanding is wrong.

Nith

Jan_Babicky
Level 3
Level 3

Hi Nith,

I am passing all the info in the properties dialog box and when I click on the load button, I get 401 auth error message eventhough the same credentials work over IE or SOAP UI..

wsdl.jpg

_Nith_
Level 10
Level 10

Hi,

Is this WSDL is on the internet? If so, can you share your credentials to test from my machine??

Thanks & Regards,

Nith

Jan_Babicky
Level 3
Level 3

Hi Nith,

no the WSDL is not available on the internet. I read somewhere that LC can do only basic authentication, but the client is saying that other process on the LC server is using some other WSDL from the vendor company that uses DIGEST auth. and can load properties just fine.

I hope that I can make it on monday to stop there and do some investigation.

I did capture via wireshark the network communication and the WSDL is epecting DIGEST however LC was sending BASIC... dont know how to tell LC to use DIGEST if even possible so far.

J.

_Nith_
Level 10
Level 10

Ok, try in your way and let me know the result.

Good Luck,

Nith

Thanks & Regards,

Nith

Jan_Babicky
Level 3
Level 3

Hi Nith,

livecycle does send only BASIC therefore the communication does not continue after it is terminated by the WS.

I would like to go aroud by the step called executeScript in workbench and create a java code that would invoke that WS.

Any ideas how to do a javacode that will invoke WS? So far I have managed (based on the sample in livedocs) variables exchange between workbench process and the script.

Thanks for any hints

J

_Nith_
Level 10
Level 10

J,

LiveCycle uses Apache Axis for web services. So you could write a axis client and invoke the web service.

Refer the following link to create axis web service client.

http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

Thanks & Regards,

Nith

Jan_Babicky
Level 3
Level 3

Hi Nith,

I have tried following code in the Execute Script and it just do not want to go through 😞

The code is supposed to call test_echo webservice on the livecycle server itself pass it some string variable and get response back, which is basicaly the same value as the input.

The method to create the response and do the actual ivokation is the one that is causing error in this script. I am not able with my knowledge to go beyond this 😞 maybe someone here will be wise and help me out.

Thanks

J.


import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.lang.String;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClient;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.dsc.InvocationRequest;
import com.adobe.idp.dsc.InvocationResponse;
import com.adobe.livecycle.formsservice.client.FormsResult;
         
String var_input = null;

//store the URL variable from the process as var_input

String var_input = patExecContext.getProcessDataStringValue("/process_data/@ej_url");

connectionProps = new Properties();

connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT,"http://ALCSEVER:8080/soap/services/test_echo");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);    
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE,"JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME,"administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD,"password");

                                  
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
                 
//Create a ServiceClient object
ServiceClient myServiceClient = myFactory.getServiceClient();

//Create a Map object to store the parameter value
Map params = new HashMap();

params.put("input", var_input);

InvocationRequest esRequest = myFactory.createInvocationRequest("test_echo","invoke",params,true);

//this line is causing the invocation error

//InvocationResponse esResponse = myServiceClient.invoke(esRequest);

//this is supposed to get the result from the test_echo webservice.
//String var_output =  esResponse.getOutputParameter("vystup");
String var_output=var_input;
 
patExecContext.setProcessDataStringValue("/process_data/ej_result",var_output)

Jan_Babicky
Level 3
Level 3

Hi Nith,

the log showed error on the AXIS framework. After some investigation the SOAP request didnt leave LC environment and during creation it simply crashed.

This problem was solved by hiring JAVA developer who coded custom component that do call specific WSDL with digest authentication.

Thanks for your thoughts and inputs.

Best,

J.