Developer Tools
JDeveloper
An Oracle JDeveloper How To Document
Written by Susan Duncan
March , 2004
Introduction
Prerequisites
Using a Web Browser to add a UDDI entry
Testing UDDI Entry using JDeveloper
Troubleshooting
Conclusion
You can install a UDDI registry as part of your Application Server installation or your can install a registry in a standalone OC4J with a user-specified Oracle database (release 8.1.7 or later). If you are using UDDI in your Application Server, Oracle Enterprise Manager has a full UDDI management console for Web services searching, publishing and management. If you are using a standalone OC4J, you can browse a UDDI registry using JDeveloper . Currently, however, JDeveloper does not provide automated publishing facilities.
This How To document discusses publishing a web service entry in a standalone OC4J UDDI registry. First it's important to know the structure of UDDI and WSDL and how they map to each other. The illustration below shows this mapping. For more information on the UDDI structures follow the links at the bottom of this How To.
A WSDL file generated by JDeveloper holds both the Service Interface definition and Service Implementation definition. Web services can use separate WSDL files to hold interfaces and implementations. UDDI offers flexibility by registering them as separate entities within UDDI.
A service interface can be seen as a reusable definition of a service and is published as a UDDI tModel.
A service implementation describes an instance of a service. Each <service> element in a WSDL is published as a UDDI businessService.
Each businessService is bound to a tModel by the <port> element in the WSDL that is published as a bindingTemplate.
A business offering a businessService is described by a businessEntity. One businessEntity may have many businessServices. Each businessService may have many bindingTemplates through multiple <port> elements
The first step in registering a web service in your UDDI registry is to create a tModel. A tModel allows you to describe somethings compliance with a specification, a concept or a shared design. For instance, there is a tModel that describes a an entry as a WSDL specification. Here you are creating a tModel of the Service Interface portion of the WSDL
| Field Name | Entry | Description |
| Name | HelloService Service | unique name so this tModel can be located. You can use the <target namespace> as an identifier |
| Description | service that greets user | <documentation> element from <definitions> element or free text |
| Overview Document URL | http://localhost:8888/WSI_Test-Project-context-root/HelloService?wsdl | location of WSDL |
| Overview Document Descr | additional description of WSDL doc |
| Field Name | Entry |
| tModelKey | UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4 |
| keyName | types |
| keyValue | wsdlSpec |
A Business Entity stores information about the party who publishes the web service
| Name | myPartnerCompany |
| Description | my Partner Company providing services to me |
| Contact | AN Other |
| tModelKey | uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88 |
| keyName | California, USA |
| keyValue | US-CA |
A business service contains details about services offered by a businessEntity and their categorization
| Field | Entry | Description |
| Name | HelloService | WSDL <service name> element |
| Description | service for greeting user | WSDL <documentation> element or free text |
| Field | Entry |
| tModelKey | uuid:CD153257-086A-4237-B336-6BDCBDCC6634
|
| keyName | Stock market trading services |
| keyValue | 84.12.18.01.00 |
The bindingTemplate contains details of how and where the service provided by the businessService is accessed
| Field | Entry | Description |
| Description | greets user | <documentation> element from <port> or free text
|
| accessPoint | http://localhost:8888/WSI_Test-Project-context-root/HelloService | <soap address> URL from <port> |
| Field | Enter | Description |
| Description | greets user | |
| Overview Document URL | http://localhost:8888/WSI_Test-Project-context-root/HelloService?wsdl |
If you are unsure of how to do this, refer to the JDeveloper online documentation
| Cannot connect to UDDI Registry from JDeveloper | Ensure that your OC4J instance is running |
| Searching a public UDDI registry by Category does not return all the expected entries | Registry owners can put quotas on the records returned. If possible, use a Name search to get round this |
UDDI provides methods for finding and publishing web services. Service interfaces are registered as tModels and service implementations as businessServices, bound to tModels. Businesses are also registered as offering services. Services and businesses can be categorized according to different taxonomies. This How To details one approach to adding entries to a UDDI registry using a browser based interface.