How to expose multiple versions of same SOAP service in the

Posted by joelscampos on 01-Nov-2017 22:44

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

Posted by joelscampos on 03-Nov-2017 07:15

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?

Posted by knavneet on 07-Nov-2017 09:49

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

This thread is closed