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-tp30975809p30975809.html
Sent from the jUDDI - User mailing list archive at Nabble.com.