Parameterizing the service URL and Broker port number in aar files

Our organization follows a change management policy where we don’t deploy anything manually to production. They now want me to comply with this and use Kintana to promote aar files from development WSStack to QA to production. The problem is, the service URL and the port for the EntireX Broker node between environments is different, and each are a product of generating the web service from Designer.

How can I externalize the web service entry point and port number so that I can possibly migrate with Kintana the aar file (and all it contains) without changing it?

The entry point will always look like this: http://[wsstack domain]/wsstack/services/[service]

Thanks in advance!

-Brian

Hi Brian,

as far as I know the web service entry point is adjusted automatically.

EntireX stuff can be parametrized using an external configuration file:
http://techcommunity.softwareag.com/ecosystem/documentation/webmethods/wmsuites/wmsuite9-5_sp1/EntireX/9-5-SP1_EntireX/adminWin/xmlListener.htm#xmlListener_config_external

Thanks for the response, Rolf. This looks like it supports what I need to happen.

In Designer, when I edit the .aar file, I go to the Operations tab where I see “Parameters”. Here’s where I am confused now. The documentation states:

It looks like I need a parameter called “services”, and then add a parameter to that called “EntireX-XML-Listener” and add an attribute called “location” to the “services” parameter. I don’t really see where I can add either attributes or other parameters to a parameter I am defining. I only can add a parameter and then assign a value.

Please advise as to what I am missing.

Thanks,

Brian

Hi Brian,

these settings have nothing to do with the Designer. You have to apply them in your app server which runs the Web Service Stack. In the axis2.xml file you have to add the section which specifies the path to the configuration file. The configuration file is an XML file, here’s the example from the documentation:

That’s disappointing. The SOA admin team will then have to do this editing of axis2.xml which is less than optimal. I would have liked to make this change possible prior to deploying the aar file under WSStack (using Designer where the WSDL and XMM files are able to be configured). Sounds like I need to submit an enhancement request if I want to be able to configure axis2.xml in the Designer tool.

Since the purpose is to allow the aar file be promoted through the use of Kintana, what is the repercussion of this? If they set up Kintana to copy the aar file, will this promote the altered axis2.xml file or will the original axis2.xml be inside the aar file and get deployed? If the original axis2.xml file is inside the aar file, will it overwrite the altered one after deployment if both the aar file and axis2.xml are copied with Kintana? Now I think you see why I’d like the axis2.xml file to be already properly configured before I deploy the first time to WSStack.

It also won’t be acceptable from a change management perspective to have someone manually tinker with the file after each promotion. That’s the point of parameterizing in the first place.

-Brian

Am I wrong to believe that axis2.xml is inside the aar file?

If I am wrong, where would I find it?

The axis2.xml file has nothing to do with the aar file. It’s part of the web service stack inside the appserver:
File axis2.xml can be found in the conf directory or folder of the Web Services Stack Web application.

So it’s sufficient to do that once.

Thanks for your patience and help, Rolf. Since it’s a one-time change and not something to be changed or deployed for each service, that should be ok then. Thanks for pointing me in the right direction!

-Brian

Just to clarify the point a bit: the axis2.xml file is updated once to point to a configuration file, which Rolf has provided an example of.

That configuration file will most often be set once and not updated each time. Obviously, if there are specific services that will have different overrides than the typical set, there may be additional updates, but typically these will be infrequent.

The purpose of the configuration file is to override settings within the aar files. The configuration will be different in each environment (but essentially static). For example, the Broker ID might change from dev to qa to prod; these will be different values in each of the configuration files in the corresponding environments. Now you are able to copy the aar files unchanged from dev to qa to prod, simplifying the deployment process and allowing the aar file to be versioned as needed.

Hi Douglas and all,

We finally got to the point where this is set up and deployed but it’s not working. This is a SAG-L posting but I am cross-posting since I got the initial help here and think I’m more likely to receive help here.

Such changes involve edits to axis2.xml:

The file referenced contains localized broker port settings:

<?xml version="1.0" encoding="utf-8" ?> vista.tcc.etn.com:10103 RPC/SRV1/CALLNAT

To try this out I deployed a service there and the XMM reference by the archive file contained the following:

vista.tcc.etn.com:10203 RPC/SRV1/CALLNAT

When testing, it took what was provided by the XMM instead of the config file.

Does anyone know what I am doing wrong? I tried blanking out the Broker info in deploying the service but it wants something there. When I put localhost:1971, of course that doesn’t work. And when really blanking it out it has no idea where the host is.

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/”>
soapenv:Body
soapenv:Fault
axis2ns6:Server
Broker Error 0013 0314: Socket connect failed:
unknown (java.net.UnknownHostException:
)

<exx:EntireX xmlns:exx=“com.softwareag.entirex.xml.rt”>
2000
0001
Broker Exception:

0013
0314
Socket connect failed:
unknown (java.net.UnknownHostException:
)

</exx:EntireX>

</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Thanks in advance for your help!

-Brian

In the famous words of Gilda Radner… “neverrr minnnnd!”. :slight_smile:

The issue is resolved and was an issue only because of incorrect tags. The tags were coded in the configuration xml file as such:

<?xml version="1.0" encoding="utf-8" ?>
<serviceGroup>
   <!--    Optional section for all EntireX services  -->
   <service name="*">
      <exx-broker-id>vista.tcc.etn.com:10103</exx-broker-id>
      <exx-service>RPC/SRV1/CALLNAT</exx-service>
   </service>
</serviceGroup>

The correct tags are:

<?xml version="1.0" encoding="utf-8" ?>
<serviceGroup>
   <!--    Optional section for all EntireX services  -->
   <service name="*">
      <exx-brokerID>host:1234</exx-brokerID>
      <exx-service>RPC/SRV1/CALLNAT</exx-service>
   </service>
</serviceGroup>

And with correct tags, the customization works as advertised.

-Brian

I have used the .aar file generated through SoftwareAG designer onto Web Service Stack and deployed to a tomcat web server. Services are enabled and listed under htttps://localhost:8080/wsstack/services/listServices. But when I send a SOAP request to https SOAP 11 endpoint, am not getting any response from services.

I need help on debugging this issue and started by looking for any wsstack logs, but didnt find any. I have provided the log properties mentioned below under WEB-INF/classes/log4j.properties and I see the logs being generated related to axis2 but none on web services SOAP request.

log4j.logger.org.apache.axis2.enterprise=DEBUG
log4j.logger.de.hunsicker.jalopy.io=DEBUG
log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.org.apache.commons.httpclient=DEBUG
log4j.logger.org.apache.axis2.transport.http.server.wire=DEBUG

Any property related to Web Service stack need to be set or am i missing something.

Thanks in advance,
Mithun