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.
