Integrate JBoss SOA-P and SOA Software registry
scottdawson Jan 7, 2011 10:42 AMI 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"/>
</properties>
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.
Regards,
Scott Dawson
Unisys