Oracle Service Registry Cluster

During an installation of Oracle Service Registry (OSR) you specify the location of the Load Balancer (LB). The assumption would then be that the installer correctly uses that when generating urls to its resources including the inquiry urls and so on. However this is not the case. We found that the web interface correctly gets its urls generated using the LB, but when responding with the list of inquiry urls (http://host:port/registry/uddi/inquiry) it responds using the server hostname and the LB port number... 

Very weird.

It took a lot of poking around until I finally found the solution. It Basically boils down to a misconfiguration of a component used by OSR called WASP.

To fix the issue we needed to change the web.xml file in the war file generated by the OSR installer.

The steps are:

Copy MIDDLEWARE_HOME/registry111/conf/porting/weblogic/build/registry.war to another location and make a backup copy. 

# mkdir -p ~/temp

# cp $MIDDLEWARE_HOME/registry111/conf/porting/weblogic/build/registry.war ~/temp


Unzip the registry.war file where you copied it to. 

# cd ~/temp

# jar xf registry.war


Edit the WEB-INF/web.xml file and insert the following:
<context-param>
    <param-name>wasp.servlet.hostname</param-name>
    <param-value>LOAD BALANCER HOSTNAME</param-value>
</context-param>


Now create a new war file
# rm registry.war
# jar cvf registry.war *


Copy the file back to the original location and just update the deployment from the wls console.
# cp ~/temp/registry.war $MIDDLEWARE_HOME/registry111/conf/porting/weblogic/build/.