3 Replies Latest reply on Sep 19, 2007 9:15 AM by thomas.diesler

    Client Discovery of Service Endpoint in Production Environme

    dhomick

      How have people deployed clients in a production environment where the url of the service endpoint is deployment specific?

      From page 543 of the JBoss 4.0 Official Guide:
      "Because the WSDL file generated by wscompile doesn't contain the SOAP address of your webservice, use the WSDL override feature to dynamically download the correct WSDL file from the server. Although this might not be the best technique to use in a production application, it does illustrate the WSDL override functionality very well"

      So, what is the best technique in a production application? Is there a way to have the client determine the url of the service via a properties file? or something similar?

        • 1. Re: Client Discovery of Service Endpoint in Production Envir
          thomas.diesler

          Not sure if I understand the question. When a WS client wants to connect to any remote web sevice it must know its address or doesn't it?

          From that address it can download the wsdl.

          • 2. Re: Client Discovery of Service Endpoint in Production Envir
            drblmb

            I do understand the question. My question is pretty much the same:

            Let's suppose you are running in production, and have a web service running at 1,000 different locations (IP Addresses). You don't want the overhead of having to go pull down the WSDL everytime you get the port, so you statically link with a .WSDL file stored locally. The problem, however, is that the soap:address location is statically defined in the WSDL. So - how does your JBossWS client change the endpoint address (NOT THE WSDL LOCATION) after getting the web service port?

            Example: I have the same web service running at x.x.x.A and at x.x.x.B. So I get the port, and I want to send the same SOAP Request to both servers - why even get the port twice? Just send it to x.x.x.A (assuming that is where the WSDL is pointing to), and then change the endpoint address to x.x.x.B, and using the same port, call the same method again and it should go to x.x.x.B.

            This is what we need to do - does anyone know how to do this? And yes, I know that you can override the WSDL location in the constructor - that isn't what I need to do here. I have been working on this for several days without success.

            Thanks