Principles To Use UDDI API

find_binding.addTModelKeytModelKey; find_binding.setMaxRowsnew Integer10; 3. Call inquiry method BindingDetail bindingDetail = inquiry.find_bindingfind_binding; 4. Operate with inquiry result ListDescription listDescription = bindingDetail.getListDescription; if listDescription = null { int includeCount = listDescription.getIncludeCount; int actualCount = listDescription.getActualCount; int listHead = listDescription.getListHead; System.out.printlnDisplaying + includeCount + of + actualCount+ , starting at position + listHead; } Note If you get the java.lang.reflect.UndeclaredThrowableException exception, check whether Oracle Service Registry is running. To use the publishing API, follow these steps. The complete code fragment is shown in Example 2, SaveService v3 . 1. Get API of security stub String securityUrl = http:localhost:8888registryuddisecurity; UDDI_Security_PortType security = UDDISecurityStub.getInstancesecurityUrl; String publishingUrl = http:localhost:8888registryuddipublishing; UDDI_Publication_PortType publishing = UDDIPublishStub.getInstancepublishingUrl; 2. Get authentication token AuthToken authToken = security.get_authTokennew Get_authTokenuserName, password; String authInfo = authToken.getAuthInfo; 3. Create save object String businessKey = uddi:systinet.com:demo:it; String serviceKey = ; serviceKey is optional int count = 1; String[] serviceNames = new String[count]; String[] languageCodes = new String[count]; languageCodes[0] = null; can set an array of language codes serviceNames[0] = Requests Service; service name String serviceDescription = Saved by Example; service description BusinessService businessService = new BusinessService; businessService.setBusinessKeybusinessKey; if serviceKey = null serviceKey.length 0 businessService.setServiceKeyserviceKey; businessService.addNamenew NameserviceNames[0], languageCodes[0]; Page 395

2.1.1. Principles To Use UDDI API

businessService.addDescriptionnew DescriptionserviceDescription; Save_service save = new Save_service; save.addBusinessServicebusinessService; save.setAuthInfoauthInfo; 4. Call publishing method ServiceDetail serviceDetail = publishing.save_servicesave; 5. Operate with publishing result BusinessServiceArrayList businessServiceArrayList = serviceDetail.getBusinessServiceArrayList; int position = 1; for Iterator iterator = businessServiceArrayList.iterator; iterator.hasNext; { BusinessService service = BusinessService iterator.next; System.out.printlnService + position + : + service.getServiceKey; System.out.printlnservice.toXML; position++; } 6. Discard the authentication token security.discard_authTokennew Discard_authTokenauthInfo; Page 396

2.1.1. Principles To Use UDDI API

Example 1. FindBinding v3 package example.inquiry; import org.systinet.uddi.client.v3.UDDIInquiryStub; import org.systinet.uddi.client.v3.UDDI_Inquiry_PortType; import org.systinet.uddi.client.v3.struct.; import java.util.Iterator; public class PrincipleFindBinding { public static void mainString args[] throws Exception { 1. Get API implementation from stub String url = http:localhost:8888registryuddiinquiry; System.out.printUsing Inquiry at url + url + ..; UDDI_Inquiry_PortType inquiry = UDDIInquiryStub.getInstanceurl; System.out.println done; 2. Collect inquiry parameters String serviceKey = uddi:systinet.com:demo:hr:employeesList; String tModelKey = uddi:systinet.com:demo:employeeList:binding; Find_binding find_binding = new Find_binding; find_binding.setServiceKeyserviceKey; find_binding.addTModelKeytModelKey; find_binding.setMaxRowsnew Integer10; 3. Call inquiry method System.out.printSearch in progress ..; BindingDetail bindingDetail = inquiry.find_bindingfind_binding; System.out.println done; 4. Operate with result ListDescription listDescription = bindingDetail.getListDescription; if listDescription = null { int includeCount = listDescription.getIncludeCount; int actualCount = listDescription.getActualCount; int listHead = listDescription.getListHead; System.out.printlnDisplaying + includeCount + of + actualCount + , starting at position + listHead; } BindingTemplateArrayList bindingTemplateArrayList = bindingDetail.getBindingTemplateArrayList; if bindingTemplateArrayList == null { System.out.printlnNothing found; return; } int position = 1; for Iterator iterator = bindingTemplateArrayList.iterator; iterator.hasNext; { BindingTemplate bindingTemplate = BindingTemplate iterator.next; Page 397

2.1.1. Principles To Use UDDI API

System.out.printlnBinding + position + : + bindingTemplate.getBindingKey; System.out.printlnbindingTemplate.toXML; position++; } } } Page 398

2.1.1. Principles To Use UDDI API

Example 2. SaveService v3 package example.publishing; import org.systinet.uddi.InvalidParameterException; import org.systinet.uddi.client.v3.UDDIException; import org.systinet.uddi.client.v3.UDDIPublishStub; import org.systinet.uddi.client.v3.UDDISecurityStub; import org.systinet.uddi.client.v3.UDDI_Publication_PortType; import org.systinet.uddi.client.v3.UDDI_Security_PortType; import org.systinet.uddi.client.v3.struct.AuthToken; import org.systinet.uddi.client.v3.struct.BusinessService; import org.systinet.uddi.client.v3.struct.BusinessServiceArrayList; import org.systinet.uddi.client.v3.struct.Description; import org.systinet.uddi.client.v3.struct.Discard_authToken; import org.systinet.uddi.client.v3.struct.DispositionReport; import org.systinet.uddi.client.v3.struct.Get_authToken; import org.systinet.uddi.client.v3.struct.Name; import org.systinet.uddi.client.v3.struct.Save_service; import org.systinet.uddi.client.v3.struct.ServiceDetail; import javax.xml.soap.SOAPException; import java.util.Iterator; public class PrincipleSaveService { public static void mainString[] args throws UDDIException, InvalidParameterException, SOAPException { String userName = demo_john; String password = demo_john; 1. Get API implementation from stub String securityUrl = http:localhost:8888registryuddisecurity; System.out.printUsing Security at url + securityUrl + ..; UDDI_Security_PortType security = UDDISecurityStub.getInstancesecurityUrl; System.out.println done; String publishingUrl = http:localhost:8888registryuddipublishing; System.out.printUsing Publishing at url + publishingUrl + ..; UDDI_Publication_PortType publishing = UDDIPublishStub.getInstancepublishingUrl; System.out.println done; 2. Get authentication token System.out.printLogging in ..; AuthToken authToken = security.get_authTokennew Get_authTokenuserName, password; System.out.println done; String authInfo = authToken.getAuthInfo; 3. Create save object String businessKey = uddi:systinet.com:demo:it; String serviceKey = ; serviceKey is optional int count = 1; String[] serviceNames = new String[count]; Page 399

2.1.1. Principles To Use UDDI API

String[] languageCodes = new String[count]; languageCodes[0] = null; can set an array of language codes serviceNames[0] = Requests Service; service name String serviceDescription = Saved by Example; service description BusinessService businessService = new BusinessService; businessService.setBusinessKeybusinessKey; if serviceKey = null serviceKey.length 0 businessService.setServiceKeyserviceKey; businessService.addNamenew NameserviceNames[0], languageCodes[0]; businessService.addDescriptionnew DescriptionserviceDescription; Save_service save = new Save_service; save.addBusinessServicebusinessService; save.setAuthInfoauthInfo; 4. Call publishing method System.out.printSave in progress ...; ServiceDetail serviceDetail = publishing.save_servicesave; System.out.println done; 5. Operate with publishing result BusinessServiceArrayList businessServiceArrayList = serviceDetail.getBusinessServiceArrayList; int position = 1; for Iterator iterator = businessServiceArrayList.iterator; iterator.hasNext; { BusinessService service = BusinessService iterator.next; System.out.printlnService + position + : + service.getServiceKey; System.out.printlnservice.toXML; position++; } 6. Discard authentication token System.out.printLogging out ..; security.discard_authTokennew Discard_authTokenauthInfo; System.out.println done; } }

2.1.2. UDDI Version 1

The UDDI version 1 Specification [http:www.oasis-open.orgcommitteesuddi-specdoccontribs.htmuddiv1] has provided a foundation for next versions. Inquire • WSDL: inquire_v1.wsdl [http:www.systinet.comdocsr-65wsdlinquire_v1.wsdl] • API endpoint: http:host name:portcontextuddiinquiry • Java API: org.systinet.uddi.client.v1.InquireSoap • Demos: Inquiry demos v1 Page 400 Inquire Publish • WSDL: publish_v1.wsdl [http:www.systinet.comdocsr-65wsdlpublish_v1.wsdl] • API endpoint: http:host name:portcontextuddipublishing • Java API: org.systinet.uddi.client.v1.PublishSoap • Demos: Publishing demos v1

2.1.3. UDDI Version 2