Hi Sean,

If I save my service using:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:urn="urn:uddi-org:api_v3" xmlns:xd="http://www.w3.org/2000/09/xmldsig#";>
<soapenv:Header/>
<soapenv:Body>
<urn:save_service>
<!--Optional:-->
<urn:authInfo>authtoken:baa5843e-5c44-4d96-ac91-8a6f5c72a767</urn:authInfo>
<!--1 or more repetitions:-->
<urn:businessService serviceKey="uddi:juddi.apache.org:service1" businessKey="uddi:juddi.apache.org:businesses-asf">
<!--Zero or more repetitions:-->
<urn:name xml:lang="en">service1</urn:name>
<!--Zero or more repetitions:-->
<urn:description xml:lang="en">description of service1</urn:description>
<!--Optional:-->
<urn:bindingTemplates>
<!--1 or more repetitions:-->
<urn:bindingTemplate bindingKey="uddi:juddi.apache.org:binding1" serviceKey="uddi:juddi.apache.org:service1">
<!--Zero or more repetitions:-->
<urn:description xml:lang="en">description of binding1</urn:description>
<!--Optional:-->
<urn:accessPoint useType="wsdlDeployment">http://127.0.0.1:33010/axis/SnipSnipWebService</urn:accessPoint>

<urn:categoryBag>
<!--Zero or more repetitions:-->
<urn:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>

</urn:categoryBag>

</urn:bindingTemplate>
</urn:bindingTemplates>

</urn:businessService>
</urn:save_service>
</soapenv:Body>
</soapenv:Envelope>

Then you can find enpoints that reference 'wsdlDeployment' like so

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:urn="urn:uddi-org:api_v3">
<soapenv:Header/>
<soapenv:Body>
<urn:find_binding >
<urn:categoryBag>
<urn:keyedReference tModelKey="uddi:uddi.org:categorization:types"
         keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</urn:categoryBag>
</urn:find_binding>
</soapenv:Body>
</soapenv:Envelope>

which gives me

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
<soap:Body>
<ns2:bindingDetail xmlns:ns11="urn:uddi-org:vs_v3" xmlns:ns10="urn:uddi-org:policy_v3_instanceParms" xmlns:ns9="urn:uddi-org:policy_v3" xmlns:ns8="urn:uddi-org:vscache_v3" xmlns:ns7="urn:uddi-org:subr_v3" xmlns:ns6="urn:uddi-org:sub_v3" xmlns:ns5="urn:uddi-org:custody_v3" xmlns:ns4="urn:uddi-org:repl_v3" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#"; xmlns:ns2="urn:uddi-org:api_v3">
<ns2:listDescription>
<ns2:includeCount>8</ns2:includeCount>
<ns2:actualCount>8</ns2:actualCount>
<ns2:listHead>1</ns2:listHead>
</ns2:listDescription>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:binding1" serviceKey="uddi:juddi.apache.org:service1">
<ns2:description xml:lang="en">description of binding1</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://127.0.0.1:33010/axis/SnipSnipWebService</ns2:accessPoint>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publisher-ws" serviceKey="uddi:juddi.apache.org:services-publisher">
<ns2:description>jUDDI Publisher Service API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/publisher?wsdl</ns2:accessPoint>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscriptionlistener-ws" serviceKey="uddi:juddi.apache.org:services-subscriptionlistener">
<ns2:description>UDDI Subscription Listener API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/subscription-listener?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscriptionlistener"/>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscription-ws" serviceKey="uddi:juddi.apache.org:services-subscription">
<ns2:description>UDDI Subscription API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/subscription?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscription">
<ns2:instanceDetails>
<ns2:instanceParms><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
<UDDIinstanceParmsContainer
                xmlns="urn:uddi-org:policy_v3_instanceParms">
<authInfoUse>required</authInfoUse>
<filterUsingFindAPI>supported</filterUsingFindAPI>
</UDDIinstanceParmsContainer>]]></ns2:instanceParms>
</ns2:instanceDetails>
</ns2:tModelInstanceInfo>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-custodytransfer-ws" serviceKey="uddi:juddi.apache.org:services-custodytransfer"> <ns2:description>UDDI Custody and Ownership Transfer API V3</ns2:description> <ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/custody-transfer?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_ownership_transfer">
<ns2:instanceDetails>
<ns2:instanceParms>&lt;?xml version="1.0" encoding="utf-8" ?>
&lt;UDDIinstanceParmsContainer
                 xmlns="urn:uddi-org:policy_v3_instanceParms">
&lt;authInfoUse>required&lt;/authInfoUse>
&lt;/UDDIinstanceParmsContainer></ns2:instanceParms>
</ns2:instanceDetails>
</ns2:tModelInstanceInfo>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-security-ws" serviceKey="uddi:juddi.apache.org:services-security">
<ns2:description>UDDI Security API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/security?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_security"/>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publish-ws" serviceKey="uddi:juddi.apache.org:services-publish">
<ns2:description>UDDI Publication API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/publish?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_publication">
<ns2:instanceDetails>
<ns2:instanceParms>&lt;?xml version="1.0" encoding="utf-8" ?>
&lt;UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
&lt;authInfoUse>required&lt;/authInfoUse>
&lt;/UDDIinstanceParmsContainer></ns2:instanceParms>
</ns2:instanceDetails>
</ns2:tModelInstanceInfo>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
<ns2:bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-inquiry-ws" serviceKey="uddi:juddi.apache.org:services-inquiry">
<ns2:description>UDDI Inquiry API V3</ns2:description>
<ns2:accessPoint useType="wsdlDeployment">http://localhost:8080/juddiv3//services/inquiry?wsdl</ns2:accessPoint>
<ns2:tModelInstanceDetails>
<ns2:tModelInstanceInfo tModelKey="uddi:uddi.org:v3_inquiry">
<ns2:instanceDetails>
<ns2:instanceParms>&lt;?xml version="1.0" encoding="utf-8" ?>
&lt;UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
&lt;defaultSortOrder>
                      uddi:uddi.org:sortorder:binarysort
&lt;/defaultSortOrder>
&lt;/UDDIinstanceParmsContainer></ns2:instanceParms>
</ns2:instanceDetails>
</ns2:tModelInstanceInfo>
</ns2:tModelInstanceDetails>
<ns2:categoryBag>
<ns2:keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment"/>
</ns2:categoryBag>
</ns2:bindingTemplate>
</ns2:bindingDetail>
</soap:Body>
</soap:Envelope>

See also: http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v202-20040631.htm#_Toc76437781

Maybe this will get you going?

-Kurt

On 10/3/11 5:42 PM, S K wrote:
Here is an example of a soap call that comes back empty.   Is it
because the back end wasn't implemented?  Or I am doing this wrong?

in the juddi.log, I see this:

2011-10-03 14:32:56,617 DEBUG [org.apache.juddi.query.EntityQuery] - select dist
inct be.entityKey from BusinessEntity be , BusinessService bs , BindingTemplate
bt , TmodelInstanceInfo TmodelInstanceI_0 where ( be.entityKey = bs.businessEnti
ty.entityKey and bs.entityKey = bt.businessService.entityKey and bt.entityKey =
TmodelInstanceI_0.bindingTemplate.entityKey ) and ( (TmodelInstanceI_0.tmodelKey
  = ?) )

1       java.lang.String
uddi:mymetadata.sk92129.org:fubar:ent:tmodels:1.1:servi
celayer
^M

where the tmodelKey
(uddi:metadata.myorg.org:FUBAR:Ent:tModels:1.1:serviceLayer) exists in
one of my business services.

   <businessService serviceKey="uddi:snipsnip" businessKey="uddi:snipsnip">
       <name xml:lang="en">Source Selection Service</name>
       <description xml:lang="en">A Web Service supporting snip
snip.</description>
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:snip-snip-service-ws"
serviceKey="uddi:snipsnip-service">
           <description>snipsnip.</description>
           <accessPoint
useType="wsdlDeployment">http://127.0.0.1:33010/axis/SnipSnipWebService</accessPoint>
           <!--tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="" />
           </tModelInstanceDetails-->
           <categoryBag>
             <keyedReference keyName="uddi-org:types:wsdl"
keyValue="wsdlDeployment"
tModelKey="uddi:uddi.org:categorization:types"/>
             <keyedReference keyName="SNIP Enterprise Service Layer"
keyValue="SNIP Common"
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:serviceLayer"/>
             <keyedReference keyName="SNIP Enterprise Service Line"
keyValue="SNIP"
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:serviceLine"/>
             <keyedReference keyName="SNIP Enterprise Service Line"
keyValue="Data Access"
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:serviceLine"/>
             <keyedReference keyName="SNIP Enterprise Service Family"
keyValue="SNIP PROCESSING"
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:serviceFamily"/>
             <keyedReference keyName="SNIP Enterprise Functional
Capability" keyValue="SNIP set that meets the desired accuracy of the
service consumer."
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:function"/>
             <keyedReference keyName="SNIP Enterprise Context"
keyValue="Imagery"
tModelKey="uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:context"/>
           </categoryBag>
         </bindingTemplate>
       </bindingTemplates>
     </businessService>



<?xml version="1.0" ?>
       <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";>
          <S:Body>
             <ns2:find_business xmlns:ns2="urn:uddi-org:api_v3"
xmlns:ns3="urn:uddi-org:custody_v3" xmlns:ns4="urn:uddi-org:repl_v3"
xmlns:ns5="http://www.w3.org/2000/09/xmldsig#";
xmlns:ns6="urn:uddi-org:sub_v3" xmlns:ns7="urn:uddi-org:subr_v3"
xmlns:ns8="urn:uddi-org:vscache_v3" xmlns:ns9="urn:uddi-org:policy_v3"
xmlns:ns10="urn:uddi-org:vs_v3"
xmlns:ns11="urn:uddi-org:policy_v3_instanceParms">
                
<ns2:authInfo>authtoken:c84501d8-30a6-4fa2-9ac5-035356dd096e</ns2:authInfo>
                <ns2:findQualifiers>
                   <ns2:findQualifier>approximateMatch</ns2:findQualifier>
                </ns2:findQualifiers>
                <ns2:name>%</ns2:name>
                <ns2:tModelBag>

<ns2:tModelKey>uddi:mymetadata.sk92129.org:FUBAR:Ent:tModels:1.1:serviceLayer</ns2:tModelKey>
                </ns2:tModelBag>
             </ns2:find_business>
          </S:Body>
       </S:Envelope>




On Fri, Sep 30, 2011 at 6:27 AM, Kurt T Stam<[email protected]>  wrote:
Hi Sean,

Well in general it would look something like

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:urn="urn:uddi-org:api_v3">
<soapenv:Header/>
<soapenv:Body>
<urn:find_business>

<urn:findQualifiers>
<!--1 or more repetitions:-->
<urn:findQualifier>approximateMatch</urn:findQualifier>
</urn:findQualifiers>
<!--Zero or more repetitions:-->
<urn:name>%</urn:name>

</urn:find_business>
</soapenv:Body>
</soapenv:Envelope>

But I don't have particular examples of 'ALL_LIKE_KEYS', 'AND_ALL_KEYS'
That said I hope that gets you going, but I have noticed that not all of the
find qualifiers have been implemented, but it is pretty straightforward to
do so.

If you find some are missing, please log jiras for them,
and and you want to help out, we'll gladly accept patches (and are always
looking for good developers
to become committers if the patches look good!)

Cheers,

--Kurt



On 9/29/11 4:04 PM, S K wrote:
Hi Kurt,

do you have some sample (soap ui project files and) requests to the
http://localhost:8080/juddiv3/services/inquiry?wsdl for the
find_service or find_business using those FindQualifiers?

I have access to the soapui 4.x free version or the 3.6.1 pro version.

Thanks for all your help...

Sean

On Thu, Sep 29, 2011 at 11:25 AM, Kurt T Stam<[email protected]>    wrote:
Hi SK,

The easiest way to get help is to use SoapUI and post the XML request
along
with what you are expecting and the results you are getting rather then
posting code!

--Kurt

On 9/29/11 1:40 PM, S K wrote:
Hello.

Does anyone have either any sample query XMLs or sample java inquiry
client code that would exercise the various FindQualifiers
(ALL_LIKE_KEYS, AND_ALL_KEYS, etc).

I have generated my own tModel and some sample businesses and services
but I am finding that the FindQualifiers does not work -- except for
the CASE INSENSITIVE qualifier.

I am trying to build a search GUI to make searching for businesses or
services easier.

For example, I have this junit test code, I have wrapped and
encapsulated some of the JUDDI inquiry parameter building in my own
classes, but I think you will understand my junit code...


        @Before
        public void setUp() {
                try {
                        String clazz =
UDDIClientContainer.getUDDIClerkManager(null).

  getClientConfig().getUDDINode("default").getProxyTransport();
                        Class transportClass = ClassUtil.forName(clazz,
Transport.class);
                        if (transportClass!=null) {
                                Transport transport = (Transport)
transportClass.getConstructor(String.class).newInstance("default");
                                UDDISecurityPortType security =
transport.getUDDISecurityService();
                                inquiry =
transport.getUDDIInquiryService();

                                // Our publisher is now saved, so now we
want to retrieve its
authentication token
                                GetAuthToken getAuthTokenMyPub = new
GetAuthToken();
                                getAuthTokenMyPub.setUserID("uddi");
                                getAuthTokenMyPub.setCred("uddi");
                                AuthToken myPubAuthToken =
security.getAuthToken(getAuthTokenMyPub);
                                System.out.println ("myPub AUTHTOKEN = "
+
myPubAuthToken.getAuthInfo());
                                assertTrue(myPubAuthToken.getAuthInfo()
!=
null);
                                authInfo = myPubAuthToken.getAuthInfo();
                        }
                }
                catch (Exception e) {
                        e.printStackTrace();
                }
        }

@Test
        public void testOrLike() {
                try {
                                InquiryOptions opt = new
InquiryOptions();


  opt.setCaseInsensitivity(InquiryOptions.SEARCH_OPTION_CASE_INSENSITIVE_TRUE);

  opt.setMatchType(InquiryOptions.SEARCH_OPTION_MATCH_TYPE_APPROXIMATE);


  
opt.setConditionalOperator(InquiryOptions.SEARCH_OPTION_CONDITIONAL_OR_LIKE_KEYS);
                                String results =
InquiryUtil.findService("service", opt, authInfo,
                                                inquiry);
                                System.out.println(results);
                                // seems to return nothing --- it should
return something, right?
                }
                catch (Exception e) {
                        e.printStackTrace();
                }
        }


Reply via email to