How to expose multiple versions of same SOAP service in the Servlet WSA? - Forum - OpenEdge Development - Progress Community

How to expose multiple versions of same SOAP service in the Servlet WSA?

 Forum

How to expose multiple versions of same SOAP service in the Servlet WSA?

This question is not answered

I installed the "<tomcat>/webapps/wsa/", and deployed the web wervice (WSTest.wsm).

What is the best/practical way to deploy a new version of the (WSTest.wsm) with changes, without affect the current version that is in use by clients?

My first idea was to make a copy of the "<tomcat>/webapps/wsa/" and create "<tomcat>/webapps/wsa_v1/", and deploy the (WSTest.wsm) in this new servlet.

How do you guys manage to deliver different versions of a service?

Thank you for any help.

All Replies
  • This article asserts that to setup a second instance of the WSA with Tomcat is:

    http://localhost:8080/wsa-v1/

    http://localhost:8080/wsa-v2/

    The structure will be:

    (http://localhost:8080/wsa-v1/) <----> [WSA.wsa_v1] <----> AppServer (soapbroker1) <----> c:\OpenEdge\WRK\test.r.

    (http://localhost:8080/wsa-v2/) <----> [WSA.wsa_v2] <----> AppServer (soapbroker1) <----> c:\OpenEdge\WRK\test.r.

    If I want to deliverer different versions of the "test.r", do I have to create multiple instances of the AppServer for them be used by the different WSA's instances?

    There is another way?

  • There could be different ways to manage versions.

    In your case you have two WSA instances named wsa_v1 and wsa_v2.

    If they are associated with same appserver broker then it will run same version of test.r. So, in your example above you will need test_v1.r and test_v2.r

    However, if you wanted the .r code name to be same, you could do the following:

    (I will put a caveat emptor here that this is what I can think of and there could be better ways to do it)

    1. create  two appserver brokers viz. soapbroker1 and soapbroker2.

    2. create version folders say C:\OpenEdge\WRK\pcode\v1 and C:\OpenEdge\WRK\pcode\v2.

    3. C:\OpenEdge\WRK\pcode\v1 contains version 1 test.r and C:\OpenEdge\WRK\pcode\v2 has version 2 test.r

    4. Add C:\OpenEdge\WRK\pcode\v1 to the propath of soapbroker1 and C:\OpenEdge\WRK\pcode\v2 to propath of sopabroker2

    5. Check the appService name for the two instances and associate wsa_v1 with soapbroker1 and wsa_v2 with soapbroker2

    proenv> wsaman -i wsa_v1 -getdefaults

    This will show you all the runtime properties of wsa_v1 including the appserviceName (which by default will be asbroker1)

    You can change it using wsaman -setdefaults command

    proenv> wsaman -i wsa_v1 -prop appserviceName -value soapbroker1-setdefaults.

    Similarly,

    proenv> wsaman -i wsa_v2 -getdefaults

    This will show you all the runtime properties of wsa_v1 including the appserviceName (which by default will be asbroker1)

    You can change it using wsaman -setdefaults command

    proenv> wsaman -i wsa_v2 -prop appserviceName -value soapbroker2 -setdefaults.

    Just my two cents on this topic which can have multiple solutions (and I believe better ones).

    Thanks,

    Navneet