| Summary | How can multiple Orbix Naming Services be exposed as SOAP over HTTP endpoints via the Artix router? | 
|---|---|
| Article Number | 17444 | 
| Environment | All Supported Operating Systems Artix 5.5 Orbix 6.x JAX-RPC C based Artix router | 
| Question/Problem Description | How can multiple Orbix Naming Services be exposed as SOAP over HTTP endpoints via the Artix router? How to expose the Orbix Naming Service as a Web Service? | 
| Clarifying Information | |
| Error Message | |
| Defect/Enhancement Number | |
| Cause | |
| Resolution | The Orbix Naming Service can be exposed in the same way as any other CORBA service. The IDL must first be mapped to WSDL, this can be achieved using the idltowsdl tool. The intricacies of such tool is outside the scope of this article, but can be reviewed in the Artix for CORBA guide. Once the WSDL for the Naming Service is available it should be populated with the IOR of the indirect persistent reference of the Naming Service, this will avoid any need to update the IOR as the connection will always be established via the locator. This WSDL can then be updated to add SOAP binding and HTTP transport, thus adding a new port when the WSDL is deployed. A route can then be added between the two existing ports. To add a second Naming Service it is simply a case of adding a new CORBA port with a reference to the second Naming Service reference as the interface remains the same, a new SOAP/HTTP port will also be needed. For example a second route could be added to the samples/routing/corba_soap_http demo as below: <service name="CorbaService"> <port binding="corbatm:CorbaBinding" name="CorbaPort"> <corba:address location="file:../../hello_world_service.ior"/> </port> </service> <service name="HTTPSoapService"> <port binding="corbatm:SOAPBinding" name="HTTPSoapPort"> <soap:address location="http://localhost:9000"/> </port> </service> <service name="CorbaService2"> <port binding="corbatm:CorbaBinding" name="CorbaPort2"> <corba:address location="file:../../hello_world_service2.ior"/> </port> </service> <service name="HTTPSoapService2"> <port binding="corbatm:SOAPBinding" name="HTTPSoapPort2"> <soap:address location="http://localhost:9002"/> </port> </service> <ns1:route name="route_1"> <ns1:source port="HTTPSoapPort" service="corbatm:HTTPSoapService"/> <ns1:destination port="CorbaPort" service="corbatm:CorbaService"/> </ns1:route> <ns1:route name="route_2"> <ns1:source port="HTTPSoapPort2" service="corbatm:HTTPSoapService2"/> <ns1:destination port="CorbaPort2" service="corbatm:CorbaService2"/> </ns1:route> | 
| Workaround | |
| Notes | |
| Attachment | 
| Created date: | 06 September 2011 | 
|---|---|
| Last Modified: | 13 February 2013 | 
| Last Published: | 23 June 2012 | 
| First Published date: | 10 September 2011 | 
#KnowledgeDocs
#Orbix

