7 Replies Latest reply on Aug 28, 2009 7:04 AM by BKBK

    Webservice on server startup

    akapp@fnds3000

      I have a webservice that works 100% once running.

      The problem is that when the server has been restarted, you need to manually go and do a "Validate" action on the webservice before it will run. Any idea how to resolve this?

       

      Thank you

      Andre

        • 1. Re: Webservice on server startup
          BKBK Adobe Community Professional & MVP

          I suspect the web service uses application or session variables or, quite unlikely but possible, server variables. If so, then it would need a kick-start whenever the server restarts. It is in fact also what you would wish.

          • 2. Re: Webservice on server startup
            akapp@fnds3000 Level 1

            The question that begs answering is:

             

            How do I kick-start this when the server/after the server starts. I have to get this automated as the webservice is a gateway to a financial system causing havoc if somebody forgets to refresh the WS manually.

             

            Tks

            Andre

            • 3. Re: Webservice on server startup
              BKBK Adobe Community Professional & MVP

              To kick-start, use a simple Coldfusion test page to call the web service.

              • 4. Re: Webservice on server startup
                Adam Cameron. Level 5

                What is the manifestation if one calls this web service before validating it?  Is there an error message?

                 

                --

                Adam

                • 5. Re: Webservice on server startup
                  akapp@fnds3000 Level 1

                  I have two servers, a gateway server that is the "source/owner" of the web service. Ip 192.168.159.129.

                  Then a client that consumes the ws - ip 192.168.159.128.

                   

                  The server show now entries in the error log.

                  The error on the client machine is :

                   

                  08/28 06:14:15 Error [jrpp-2] - coldfusion.xml.rpc.XmlRpcServiceImpl$CantFindWSDLException: Unable to read WSDL from URL: http://192.168.159.129/ws/WPSVPWebService.cfc?wsdl

                   

                   

                  This is directly after both servers has started up. This will be the first ws call made.

                   

                  I the refresh the ws on the server machine - still the same error.

                  08/28 06:19:06 Error [jrpp-0] - coldfusion.xml.rpc.XmlRpcServiceImpl$CantFindWSDLException: Unable to read WSDL from URL: http://192.168.159.129/ws/WPSVPWebService.cfc?wsdl.

                   


                  I then refresh the ws definition on the client machine and VOILA - working.

                   

                  The ws is defined as follows on the client cf server:

                  Name:WPSVPWebService

                  URL: http://192.168.159.129/ws/WPSVPWebService.cfc?wsdl

                  Username: xxxxxx

                  Password: xxxxxxx

                   

                  The problem is that I'm now starting up a cluster of two CentOS servers running a minimum of two Coldfusion servers each which can increase as and when the load requires another instance. If you forget to fresh the ws, it will cause majjor problems in the application.

                   

                  Any pointers will be greatly apreciated...

                   

                  Andre

                  • 6. Re: Webservice on server startup
                    akapp@fnds3000 Level 1

                    Ok - build a test.cfml module that I call with the following code:

                     

                    <cfoutput>
                    Testing ws call

                     

                    <cfset cardnumber="00000230i">
                    <cfinvoke webservice="http://192.168.159.129/ws/WPSVPWebService.cfc?wsdl"
                            method="verifyPin"
                            username="xxxx"
                            password="xxxx"
                            returnvariable="stResponse">

                     

                            <cfinvokeargument name="cardnumber" value="#cardnumber#" />
                            <cfinvokeargument name="pin" value="5353i" />

                    </cfinvoke>

                    <cfdump var="#stResponse#">

                    </cfoutput>

                     

                     

                    This fails after a time and fails to "refresh" the webservice.

                    Am I missing something?

                     

                    Tks

                    Andre

                    • 7. Re: Webservice on server startup
                      BKBK Adobe Community Professional & MVP

                      I have two servers, a gateway server that is the "source/owner" of the web service. Ip 192.168.159.129.

                      Then a client that consumes the ws - ip 192.168.159.128.

                      ...

                      ...

                      The ws is defined as follows on the client cf server:

                      Name:WPSVPWebService

                      URL: http://192.168.159.129/ws/WPSVPWebService.cfc?wsdl


                      There seems to be some ambiguity in the IP addresses. The client 192.168.159.128 should play no role in the web service, except as consumer. It doesn't even need to have Coldfusion on it, and can in fact be any machine.

                       

                      If, for whatever reason, you intend running an identical web service on the 128 machine -- thereby turning the client into a server, too -- then the IP for the URL should be 192.168.159.128.

                       

                      The problems you face are apparently caused by the server,  192.168.159.129. The question is why Coldfusion is unable to find the WSDL when you request it from a browser on this (129) machine itself, but can find it when you request it from a browser on the 128 machine. Look into permissions, ports and webserver configuration.