You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@juddi.apache.org by Kurt T Stam <ku...@gmail.com> on 2012/09/17 19:10:59 UTC
Re: juddi multiple service binding
Hi Igor,
Sure you should be able to use the same business and seriviceKey and a
different bindingKey (which should happen by itself if it run on a
different server).
Good luck!
-Kurt
On 9/17/12 12:09 PM, Igor Azarny wrote:
> Hi Kurt !
>
> Is it possible to register several bindings to one service key using
> @UDDIServiceBinding ?
>
> Example
>
>
>
>
> @UDDIService(
> businessKey="uddi:${keyDomain}:${department}",
> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
> description = "Bangolio award definition provider",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>
> @UDDIServiceBinding(
> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-bangolio-wsdl",
> description="WSDL endpoint for the bangolio award definition provider",
> accessPointType="wsdlDeployment",
> accessPoint="http://${serverName}:${serverPort}/aprod/services/bangolioawarddefinitionprovider?wsdl",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
> )
> @WebService (
> endpointInterface = "org.domainAwardDefinitionProvider",
> serviceName = "awardDefinitionProvider"
> )
> public class BangolioAwardDefinitionProviderImpl implements
> AwardDefinitionProvider , ServletContextAware {
>
>
>
> @UDDIService(
> businessKey="uddi:${keyDomain}:${department}",
> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
> description = "Zimbra award definition provider",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>
> @UDDIServiceBinding(
> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-zimbra-wsdl",
> description="WSDL endpoint for the zimbra award definition provider",
> accessPointType="wsdlDeployment",
> accessPoint="http://${serverName}:${serverPort}/aprod/services/zimbraawarddefinitionprovider?wsdl",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
> )
>
> @WebService (
> endpointInterface = "org.domainAwardDefinitionProvider",
> serviceName = "awardDefinitionProvider"
> )
> public class ZimbraAwardDefinitionProviderImpl implements
> AwardDefinitionProvider , ServletContextAware {
>
>
>
> Thanks, Igor
Re: juddi multiple service binding
Posted by Kurt T Stam <ku...@gmail.com>.
Hi Igor,
I just went over the code and you are right; it simply parses the
annotations and then calls register. So it never 'merges'
with an existing service (but rather writes over another one). Please
open a Jira for it. You can try making a patch yourself, you'd have to
do a lookup for each service in the second for-loop below to see if it
exists, and then 'merge' the existing info (bindingTemplates) with the
new one before calling register. Should be fairly straightforward. If
you attach the patch in jira (preferable with unittest) we will merge it
in quickly.
In the UDDIClerkManager:
public void registerAnnotatedServices() {
Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
if (uddiClerks.size() > 0) {
AnnotationProcessor ap = new AnnotationProcessor();
for (UDDIClerk uddiClerk : uddiClerks.values()) {
Collection<BusinessService> services =
ap.readServiceAnnotations(
uddiClerk.getClassWithAnnotations(),uddiClerk.getUDDINode().getProperties());
for (BusinessService businessService : services) {
log.info("Node=" +
uddiClerk.getUDDINode().getApiNode().getName());
uddiClerk.register(businessService,
uddiClerk.getUDDINode().getApiNode());
}
}
}
}
Cheers,
--Kurt
p.s. please register with the user@juddi.apache.org mailing list, so
other users may help out or be helped out by our conversation.
On 9/17/12 2:49 PM, Igor Azarny wrote:
> Hi Kurt !
>
> Couple of options was tested:
>
> 1. localhost and pc domain name as part of bindind key for different
> web service implementations in the same war.
> 2. suffix of binding key was different "-zimbra-wsdl" and "-bangolio-wsdl"
>
> but result was not as expected - service has only one bindings. This
> was checked via jaxr scout and data base.
>
> Any ideas or need to raise a bug ?
>
> Thanks, Igor
>
> ------------------------------------------------------------------------
> *From:* Kurt T Stam <ku...@gmail.com>
> *To:* "user@juddi.apache.org" <us...@juddi.apache.org>
> *Cc:* Igor Azarny <ia...@yahoo.com>; "kstam@apache.org"
> <ks...@apache.org>
> *Sent:* Monday, September 17, 2012 8:10 PM
> *Subject:* Re: juddi multiple service binding
>
> Hi Igor,
>
> Sure you should be able to use the same business and seriviceKey and a
> different bindingKey (which should happen by itself if it run on a
> different server).
>
> Good luck!
>
> -Kurt
>
> On 9/17/12 12:09 PM, Igor Azarny wrote:
>> Hi Kurt !
>>
>> Is it possible to register several bindings to one service key using
>> @UDDIServiceBinding ?
>>
>> Example
>>
>>
>>
>>
>> @UDDIService(
>> businessKey="uddi:${keyDomain}:${department}",
>> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>> description = "Bangolio award definition provider",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>>
>> @UDDIServiceBinding(
>> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-bangolio-wsdl",
>> description="WSDL endpoint for the bangolio award definition
>> provider",
>> accessPointType="wsdlDeployment",
>> accessPoint="http://$
>> <http://%24/>{serverName}:${serverPort}/aprod/services/bangolioawarddefinitionprovider?wsdl",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
>> )
>> @WebService (
>> endpointInterface = "org.domainAwardDefinitionProvider",
>> serviceName = "awardDefinitionProvider"
>> )
>> public class BangolioAwardDefinitionProviderImpl implements
>> AwardDefinitionProvider , ServletContextAware {
>>
>>
>>
>> @UDDIService(
>> businessKey="uddi:${keyDomain}:${department}",
>> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>> description = "Zimbra award definition provider",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>>
>> @UDDIServiceBinding(
>> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-zimbra-wsdl",
>> description="WSDL endpoint for the zimbra award definition
>> provider",
>> accessPointType="wsdlDeployment",
>> accessPoint="http://$
>> <http://%24/>{serverName}:${serverPort}/aprod/services/zimbraawarddefinitionprovider?wsdl",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
>> )
>>
>> @WebService (
>> endpointInterface = "org.domainAwardDefinitionProvider",
>> serviceName = "awardDefinitionProvider"
>> )
>> public class ZimbraAwardDefinitionProviderImpl implements
>> AwardDefinitionProvider , ServletContextAware {
>>
>>
>>
>> Thanks, Igor
>
>
>