Or, basically how do I find a service based on a TModel entry or keyValue or keyName associated with the specific businessService? Look below at how my businessService has a categoryBag and has two or more keyedReference with keyName, keyValue and tmodelKey.
On Mon, Oct 3, 2011 at 2:42 PM, S K <[email protected]> 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(); >>>>> } >>>>> } >>>> >> >> >
