Try using the "approximateMatch" find qualifier with you search using '%'.

http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908080

-JF

-----Original Message-----
From: chainerlt [mailto:[email protected]] 
Sent: Monday, February 21, 2011 4:01 AM
To: [email protected]
Subject: juddiv3 (3.0.4) finding all business/services


Hello,

I've been looking for this answer for like a week now. Seems like I've
googled everything and everywhere. Even posted in this forum: 
http://old.nabble.com/Re%3A-jUDDIv3.-Find-all-services.-td28329206.html here
. So here is my story:
I'm using juddi-portal-bundle-3.0.4 at the moment. Juddy behaves happy and
works properly, but here comes some problems (or lack of my knowledge) when
I wanna get a list of all business and/or services.
So I was learning juddi for a while and now I'm able to manage
business/services via soapui (let's say in a manual way) or programmatically
(via java). So I've created some temp business with services and here's how
they look from UDDIBrowser Portlet:
http://old.nabble.com/file/p30975809/uddibrowserportlet.png 
I've read that for searching all business you need to use search name "%",
but seems like it is not working for me. I've tried both: programmatically
and via soapui:


> import org.apache.juddi.ClassUtil;
> import org.apache.juddi.api_v3.*;
> import org.apache.juddi.v3.client.config.UDDIClientContainer;
> import org.apache.juddi.v3.client.transport.Transport;
> import org.apache.juddi.v3_service.JUDDIApiPortType;
> import org.uddi.api_v3.*;
> import org.uddi.v3_service.*;
> ...
>         private static UDDISecurityPortType security = null;
>       private static JUDDIApiPortType juddiApi = null;
>       private static UDDIPublicationPortType publish = null;
>       private static UDDIInquiryPortType inquiry = null;
> 
>       public Tools() throws Exception
>       {
>               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");
>                       security = transport.getUDDISecurityService();
>                       juddiApi = transport.getJUDDIApiService();
>                       publish = transport.getUDDIPublishService();
>                       inquiry = transport.getUDDIInquiryService();
>               }
>       }
> ...
>         public BusinessList findBusiness(String searchPattern) throws
> Exception
>       {
>               FindBusiness fb = new FindBusiness();
>               Name findName = new Name();
>               findName.setValue(searchPattern);
>               fb.getName().add(findName);
>               return inquiry.findBusiness(fb);
>       }
> ...
> findBusiness("%");
> 

It brings me empty BusinessList. Here's how it looks while debugging:

http://old.nabble.com/file/p30975809/debugFindBusinessWildCard.png 

However it works when I search for exact business name, for instance "My
Business2":

http://old.nabble.com/file/p30975809/MyBusiness2found.png 

Same via soapUI (3.6.1):
Request:


> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:urn="urn:uddi-org:api_v3">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <urn:find_business>
>          <!--Zero or more repetitions:-->
>          <urn:name>My Business2</urn:name>
>       </urn:find_business>
>    </soapenv:Body>
> </soapenv:Envelope>
> 
Respond:


> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <businessList xmlns:ns10="urn:uddi-org:policy_v3_instanceParms"
> xmlns:ns9="urn:uddi-org:vs_v3" xmlns:ns8="urn:uddi-org:repl_v3"
> xmlns:ns7="urn:uddi-org:policy_v3" xmlns:ns6="urn:uddi-org:subr_v3"
> xmlns:ns5="urn:uddi-org:sub_v3" xmlns:ns4="urn:uddi-org:vscache_v3"
> xmlns:ns3="urn:uddi-org:custody_v3"
> xmlns:ns2="http://www.w3.org/2000/09/xmldsig#";
> xmlns="urn:uddi-org:api_v3">
>          <listDescription>
>             <includeCount>1</includeCount>
>             <actualCount>1</actualCount>
>             <listHead>1</listHead>
>          </listDescription>
>          <businessInfos>
>             <businessInfo
> businessKey="uddi:juddi.apache.org:c0d12d2f-9f8b-4444-acae-675f8f53383f">
>                <name>My Business2</name>
>                <serviceInfos>
>                   <serviceInfo
> businessKey="uddi:juddi.apache.org:c0d12d2f-9f8b-4444-acae-675f8f53383f"
> serviceKey="uddi:juddi.apache.org:beed92d4-57b5-4974-9e56-17d846f2cca2">
>                      <name>My Service2</name>
>                   </serviceInfo>
>                </serviceInfos>
>             </businessInfo>
>          </businessInfos>
>       </businessList>
>    </soap:Body>
> </soap:Envelope>
> 

But finds nothing with "%" (or "*" or other 100 symbols and combinations
I've tried (including xpath and other expressions):
Request:


> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:urn="urn:uddi-org:api_v3">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <urn:find_business>
>          <!--Zero or more repetitions:-->
>          <urn:name>%</urn:name>
>       </urn:find_business>
>    </soapenv:Body>
> </soapenv:Envelope>
> 
Respond:


> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <businessList xmlns:ns10="urn:uddi-org:policy_v3_instanceParms"
> xmlns:ns9="urn:uddi-org:vs_v3" xmlns:ns8="urn:uddi-org:repl_v3"
> xmlns:ns7="urn:uddi-org:policy_v3" xmlns:ns6="urn:uddi-org:subr_v3"
> xmlns:ns5="urn:uddi-org:sub_v3" xmlns:ns4="urn:uddi-org:vscache_v3"
> xmlns:ns3="urn:uddi-org:custody_v3"
> xmlns:ns2="http://www.w3.org/2000/09/xmldsig#";
> xmlns="urn:uddi-org:api_v3">
>          <listDescription>
>             <includeCount>0</includeCount>
>             <actualCount>0</actualCount>
>             <listHead>0</listHead>
>          </listDescription>
>       </businessList>
>    </soap:Body>
> </soap:Envelope>
> 

I've read about MetaMatrix (found smth: 
http://lists.jboss.org/pipermail/federate-commits/2008-November/000002.html
here ) but seems like it's not free. Also tried using some other libraries,
but vainly. However that "%" pattern seems to be very logic and seems like
everybody is using this way of finding all objects, but I cannot figure out
why it does not work. I really would love to get some answers or suggestions
cause I feel stuck :/ . Thanks for reading and taking time.
-- 
View this message in context:
http://old.nabble.com/juddiv3-%283.0.4%29-finding-all-business-services-tp30
975809p30975809.html
Sent from the jUDDI - User mailing list archive at Nabble.com.

Reply via email to