3 Replies Latest reply on Aug 28, 2012 3:25 AM by nandeesh.ln

    Integrate JBoss SOA-P and SOA Software registry


      I just modified a JBoss SOA Platform instance to use the SOA Software registry. I noticed that there is a JIRA issue (https://issues.jboss.org/browse/SOA-1478) regarding updating the JBoss-SOA Software integration documentation for SOA-P 5.x and I think I can give you most of the required updates based on my experience.


      My software versions are:

      JBoss SOA Platform 5.0.2.GA

      SOA Software Service Manager 5.2 + updates through sm52-update-3.44

      Linux (RHEL 5.5)


      I used the SOASoftwareIntegration.pdf that ships with JBoss ESB 4.7. The list that follows are the points where I had to do something different from what is shown in that document.


      1. The example URLs in the document are based on UDDI v2. I chose to make everything UDDI v3 compatible so the  SOA Software URLs specified in jbossesb-properties don't need the "_v2" suffix as shown in the document. SOA Software's UDDI v3 URLs don't have the version number appended. Also, I had to specify the securityManagerURI in addition to the queryManagerURI and lifeCycleManagerURI shown in the document. Without the securityManagerURI, Scout errors occur.


      2. I had to specify 2 registry interceptors in jbossesb-properties, again, to eliminate Scout errors. Fortunately, this configuration appears commented out in the file, so I only had to uncomment it:

      <property name="org.jboss.soa.esb.registry.interceptors"

                      value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor, org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor"/>


      With these changes, here is the resulting 'registry' section in the jbossesb-properties file, which is located in the server/<profile>/deployers/esb.deployer directory:


          <properties name="registry">

              <property name="org.jboss.soa.esb.registry.uddi.maxRows" value="100"/>

              <property name="org.jboss.soa.esb.registry.queryManagerURI" value="http://soa01:9901/uddi/inquiry"/>

              <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="http://soa01:9901/uddi/publish"/>

              <property name="org.jboss.soa.esb.registry.securityManagerURI" value="http://soa01:9901/uddi/security"/>

              <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>

              <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>

              <property name="org.jboss.soa.esb.registry.user" value="administrator"/>

              <property name="org.jboss.soa.esb.registry.password" value="password"/>

              <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->

              <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.AxisTransport"/>

              <property name="org.jboss.soa.esb.scout.proxy.uddiVersion" value="3.0"/>

              <property name="org.jboss.soa.esb.scout.proxy.uddiNameSpace" value="urn:uddi-org:api_v3"/>


              <property name="org.jboss.soa.esb.registry.interceptors"

                      value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor, org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor"/>


              <!-- The following properties modify the cache interceptor behaviour -->

              <property name="org.jboss.soa.esb.registry.cache.maxSize" value="100"/>

              <property name="org.jboss.soa.esb.registry.cache.validityPeriod" value="600000"/>


              <!-- Organization Category to be used by this deployment. -->

              <property name="org.jboss.soa.esb.registry.orgCategory" value="org.jboss.soa.esb.:category"/>




      It appears that everything is working correctly. The app server comes up without errors and I see a couple of services in the 'Red Hat/JBossESB' organization in Service Manager. Based on past experience with the community version ESB (and the screenshots in the document), I expected to see more JBoss internal services but only 2 currently appear in the registry: DeadLetterService and JBpmCallbackService.


      I hope this is helpful.



      Scott Dawson