12 Replies Latest reply on Nov 26, 2009 1:21 AM by Jan Babicky

    Invoke webservice (authentication issue)

    Jan Babicky Level 1

      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.

        • 1. Re: Invoke webservice (authentication issue)
          $Nith$ Level 4

          Did you enter your credentials within double quotes?

           

           

          Nith

          • 2. Re: Invoke webservice (authentication issue)
            Jan Babicky Level 1

            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

            • 3. Re: Invoke webservice (authentication issue)
              $Nith$ Level 4

              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

              • 4. Re: Invoke webservice (authentication issue)i
                Jan Babicky Level 1

                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

                • 5. Re: Invoke webservice (authentication issue)
                  $Nith$ Level 4

                  Hi,

                   

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

                   

                  Thanks & Regards,

                  Nith

                  • 6. Re: Invoke webservice (authentication issue)
                    Jan Babicky Level 1

                    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.

                    • 7. Re: Invoke webservice (authentication issue)
                      $Nith$ Level 4

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

                       

                      Good Luck,

                      Nith

                       

                      Thanks & Regards,

                      Nith

                      • 8. Re: Invoke webservice (authentication issue)
                        Jan Babicky Level 1

                        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

                        • 9. Re: Invoke webservice (authentication issue)
                          $Nith$ Level 4

                          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

                          1 person found this helpful
                          • 10. Re: Invoke webservice (authentication issue)
                            Jan Babicky Level 1

                            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,ServiceC lientFactoryProperties.DSC_SOAP_PROTOCOL);    
                            connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE,"JBoss");
                            connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME,"admini strator");
                            connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD,"passwo rd");

                             

                                                              
                            //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)

                            • 11. Re: Invoke webservice (authentication issue)
                              $Nith$ Level 4

                              Can you post the server log file?

                               

                              Nith

                              1 person found this helpful
                              • 12. Re: Invoke webservice (authentication issue)
                                Jan Babicky Level 1

                                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.