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