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();
>>>> }
>>>> }
>>>
>
>