Hi Aditi, please read my comments inline. Thanks! --Kurt
On 3/15/11 12:45 PM, Aditi Kukreja wrote:
Hi,
I am trying to publish a WSDL to a UDDI registry using JUDDI(v3.0.4).
I found that this UDDI server installation from JUDDI does not have
the following new canonical tModels. Please refer to
http://uddi.xml.org/registered-tmodels for a complete list.
WSDL Entity Type tModel, the XML Namespace tModel, the XML Local Name
tModel, the WSDL portType Reference tModel, the SOAP Protocol tModel,
the HTTP Protocol tModel, the Protocol Categorization tModel, the
Transport Categorization tModel and the WSDL Address tModel
Could you please let me know if these are intentionally not part of
the installation or these were not included in the 3.0.4 release? Also
please let me know which all UDDI registered tModels are not supported
in JUDDI v3.0.4 and how can we support the same?
it appears, we only included the UDDI tModels as referenced in the 3.0.2
spec. It'd be great if you can open a jira for it and attach the new
models. We have a new release coming in the next week or so, so I will
make sure they will be added.
Also there is nothing from stopping you from adding them yourself in 3.0.4.
Also, even if the registered tModels are not found at the server
installation I don't see any error when I try to save a keyedreference
giving the tModel key for the missing registered tModels.
I am using oasis standard version 2.0.2 to map a wsdl to uddi data
structures
(http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#_Toc76437768).
<http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#_Toc76437768%29.>
When we use keyedReference should n't we get any error/exception if
the tmodel given in the TmodelKey is not defined before?
Yes for keyedReferences we should add a check to see if they exist. Good
find, we don't do that now. Can you open a jira for that too?
Please refer to the code below for details
TModel tModel = new TModel();
Name tModelName = new Name();
tModelName.setValue("NewPort");
tModel.setName(tModelName);
// setting the OverviewDoc that contains the WSDL URL
OverviewDoc od = new OverviewDoc();
od.setOverviewURL(new OverviewURL());
od.getOverviewURL().setValue("http://abc.com:8080/ABCService/NewService/");
tModel.getOverviewDoc().add(od);
CategoryBag cb = new CategoryBag();
KeyedReference kr = new KeyedReference();
//specifies portType namespace
kr.setKeyName("portType namespace");
kr.setKeyValue("http://www.abc.com <http://www.abc.com/>");
kr.setTModelKey("uddi:uddi.org:xml:namespace");
cb.getKeyedReference().add(kr);
KeyedReference kr1 = new KeyedReference();
//specifies tModel is of portType
kr1.setKeyName("WSDL type");
kr1.setKeyValue("portType");
kr1.setTModelKey("uddi:uddi.org:wsdl:types");
cb.getKeyedReference().add(kr1);
tModel.setCategoryBag(cb);
// new save tModel structure
SaveTModel saveTModel = new SaveTModel();
// setting login information as AuthInfo structure
saveTModel.setAuthInfo(authToken.getAuthInfo());
// adding tModel which will be saved
saveTModel.getTModel().add(tModel);
// calling API method save_tModel and obtaining result in TModelDetail
structure
TModelDetail tModelDetail = publishing.saveTModel(saveTModel);
String portTypeTModelKey = tModelDetail.getTModel().get(0).getTModelKey();
Regards,
Aditi