Excellent news that things are working.
1.
>The jbossesb4.9 that you sent works fine :) But it is jboss+esb
embedded right ? I was using esb + jboss by install - deploy. I don't
know if
>there's difference ... I did download of this esb embedded with jboss
couple weeks ago, but it was with jboss 4.2, instead 5.1 ....
Yes I installed JBESB-4.9 to to JBossAS-5.1, but it should work on 4.2
just the same.
2.
>and I got this exception:
>org.apache.juddi.v3.error.KeyUnavailableException: The proposed key is
not within the partition defined by owning publisher: >uddi:myservicekey
You get this if your publisher does not own that key 'domain'. It's a
bit like registering a domain, you need to own the key.
>After I change the annotations as below fix the problem. Is there
rules to write the keys of annotations ?
Yes read on up keyGenerators. So your publishers keys need to start with
the 'domain' part.
http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-understandingkeypartitions-20061128.htm
Make sure to read the UDDI v3 info only.
See also how the sales and marketing publishers data is setup here:
http://juddi.apache.org/docs/3.0/userguide/html/chap-Subscription.html#sect-Two_node_example
3.
>The annotations to publish are the same to find a service in
registries ? Like, I registry a service in juddi and I wanna find this
service to consume in other webservice client.
I really like that idea. It sure would make things totally easy to
inject a reference to the WSDL of a server.
At the moment you have to write some code. Check out the
lookupWSDL(QName serviceQName, String portName)
method in
http://anonsvn.jboss.org/repos/riftsaw/trunk/runtime/uddi/src/main/java/org/jboss/soa/bpel/uddi/UDDIRegistrationImpl.java
If you add a feature request to the jUDDI jira you can attach your name
to the lookup-with-Annotation idea, and maybe even submit a patch
and I will merge it in!
Cheers,
--Kurt
On 3/30/11 3:42 PM, everson santos wrote:
Hi Kurt
The jbossesb4.9 that you sent works fine :) But it is jboss+esb
embedded right ? I was using esb + jboss by install - deploy. I don't
know if
there's difference ... I did download of this esb embedded with jboss
couple weeks ago, but it was with jboss 4.2, instead 5.1 ....
I build my .war based on juddiv3-samples that you sent and works fine :)
first I did like:
@UDDIService(
businessKey="uddi:myBusinessKey",
serviceKey="uddi:myServiceKey",
description = "Hello World test service")
@UDDIServiceBinding(
bindingKey="uddi:myServiceBindingKey",
description="WSDL endpoint for the helloWorld Service. This
service is used for "
+ "testing the jUDDI annotation functionality",
accessPointType="wsdlDeployment",
accessPoint="http://localhost:8080/e1/HelloWorld?wsdl")
and I got this exception:
org.apache.juddi.v3.error.KeyUnavailableException: The proposed key is
not within the partition defined by owning publisher: uddi:myservicekey
at
org.apache.juddi.validation.ValidatePublish.validateBusinessService(ValidatePublish.java:540)
at
org.apache.juddi.validation.ValidatePublish.validateSaveService(ValidatePublish.java:292)
at
org.apache.juddi.api.impl.UDDIPublicationImpl.saveService(UDDIPublicationImpl.java:519)
at
org.apache.juddi.v3.client.config.UDDIClerk.register(UDDIClerk.java:152)
at
org.apache.juddi.v3.client.config.UDDIClerkManager.registerAnnotatedServices(UDDIClerkManager.java:141)
at
org.apache.juddi.v3.client.config.BackGroundRegistration.run(BackGroundRegistration.java:39)
at java.lang.Thread.run(Thread.java:662)
16:23:40,210 INFO [UDDIClerk] Registering service HelloWorld completed.
After I change the annotations as below fix the problem. Is there
rules to write the keys of annotations ?
@UDDIService(
businessKey="uddi:${keyDomain}:${department}-asf",
serviceKey="uddi:${keyDomain}:services-hello${department}",
description = "Hello World test service")
@UDDIServiceBinding(
bindingKey="uddi:${keyDomain}:bindings-hello${department}-wsdl",
description="WSDL endpoint for the hello${department} Service.
This service is used for "
+ "testing the jUDDI annotation functionality",
accessPointType="wsdlDeployment",
accessPoint="http://localhost:8080/e1/HelloWorld?wsdl")
The annotations to publish are the same to find a service in
registries ? Like, I registry a service in juddi and I wanna find this
service to consume in other
webservice client.
Kurt, thanks for all your support!
--- Em *qua, 30/3/11, Kurt T Stam /<[email protected]>/* escreveu:
De: Kurt T Stam <[email protected]>
Assunto: Re: Help to publish and find services into juddi using
jboss and esb
Para: [email protected]
Data: Quarta-feira, 30 de Março de 2011, 11:30
Hi Everson,
I uploaded a jbossesb-4.9:
http://people.apache.org/~kstam/appserver/jbossesb-4.9.tgz
<http://people.apache.org/%7Ekstam/appserver/jbossesb-4.9.tgz>
Onto which I added a sightly modified juddiv3-samples.war for
jboss deployment. Note that this war is nice and light.
Also I move most of the juddi jars from the jbossesb deployments
to the lib directory (so they are shared by all).
Upon deployment you should see:
10:15:46,347 INFO [UDDIClerk] Sending Clerk BobCratchit info to
jUDDI default
10:15:46,372 INFO [UDDIClerkManager] Node=default
10:15:46,372 INFO [UDDIClerk] Registering service HelloWorld with
key uddi:juddi.apache.org:services-hellobusinesses
10:15:46,388 INFO [UDDIClerk] Registering service HelloWorld
completed.
10:15:46,388 INFO [UDDIClerkManager] Starting cross registration...
10:15:46,388 INFO [UDDIClerkManager] Cross registration completed
10:15:46,388 INFO [UDDIClerkManager] Clerks started succesfully
for manager example-manager
I hope that with this example you can copy it and modify it for
your use.
I will talk to Tom Cunningham (Proj lead of JBossESB) to figure
out what the desired jar deployment is but for now this works :).
Cheers,
--Kurt
On 3/30/11 10:05 AM, everson santos wrote:
It seems doesn't read the uddi.xml from .war or I'm doing
something wrong ...
what do you think ?
--- Em *qua, 30/3/11, Kurt T Stam /<[email protected]>
</mc/[email protected]>/* escreveu:
De: Kurt T Stam <[email protected]>
</mc/[email protected]>
Assunto: Re: Help to publish and find services into juddi
using jboss and esb
Para: [email protected]
</mc/[email protected]>
Data: Quarta-feira, 30 de Março de 2011, 10:26
Progress :), and yes you want to add a clerk config to your
example-manager, and reference your annotated classes --K
On 3/30/11 9:23 AM, everson santos wrote:
I forgot to clean clerk from esb.juddi.client.xml. After
this change I think that example-manager must be loaded like
uddi-portlet-manager don't ?
09:45:01,170 INFO [UDDIClerkManager] Starting UDDI Clerks
for manager uddi-portlet-manager...
--- Em *qua, 30/3/11, Kurt T Stam /<[email protected]>/*
escreveu:
De: Kurt T Stam <[email protected]>
Assunto: Re: Help to publish and find services into
juddi using jboss and esb
Para: [email protected]
Data: Quarta-feira, 30 de Março de 2011, 10:11
So I think 'uddi-portlet-manager' is the client config
in the esb right? And I don't think you are deploying your
'org.jboss.samples.HelloWorld' class there. So you
should remove the that from the Clerk config in that file.
You want to add a Clerk (who will do the registration,
using the annotations info) in the war file with your
webservices.
Much like the juddiv3-samples.war.
Hope this helps..
--Kurt
On 3/30/11 8:59 AM, everson santos wrote:
Hi Kurt
I put the jars as you said in
deployers/esb.deployers/lib and replace
jbossesb.sar/meta-inf/jboss-service.xml.
The mbean doesn't appear when jboss is loading, but
in the jmx-console I can see it, seems ok.
I create in web.xml of my .war
<context-param>
<param-name>uddi.client.manager.name</param-name>
<param-value>example-manager</param-value>
</context-param>
But I get the notfoundexception yet. I looking at the
tables from juddi schema and I didn't anything new in :
j3_business_service, j3_business_name, j3_service_name
I thing I must see in that tables the names from my
annotations:
@UDDIService(
businessKey="uddi:eversonBusinessKey",
serviceKey="uddi:eversonServiceKey",
When jboss is loading:
9:45:00,998 INFO [InVMTemporaryTransport] Starting
reaper thread
09:45:01,094 INFO [ClientConfig] Reading UDDI Client
properties file
vfsfile:/home/everson.santos/Downloads/jboss-5.1.0.GA-testes-juddi/server/default/deploy/jbossesb.sar/esb.juddi.client.xml
09:45:01,129 INFO [ClientConfig] XRegistration 0
servicebindingKeys
09:45:01,129 INFO [ClientConfig] XRegistration 0
businessKeys
09:45:01,170 INFO [UDDIClerkManager] Starting UDDI
Clerks for manager uddi-portlet-manager...
09:45:01,171 INFO [UDDIClerkManager] No home clerk found.
09:45:01,177 ERROR [STDERR]
java.lang.ClassNotFoundException:
org.jboss.samples.HelloWorld
09:45:01,177 ERROR [STDERR] at
java.net.URLClassLoader$1.run(URLClassLoader.java:202)
09:45:01,177 ERROR [STDERR] at
java.security.AccessController.doPrivileged(Native Method)
09:45:01,177 ERROR [STDERR] at
java.net.URLClassLoader.findClass(URLClassLoader.java:190)
09:45:01,177 ERROR [STDERR] at
java.lang.ClassLoader.loadClass(ClassLoader.java:307)
09:45:01,177 ERROR [STDERR] at
java.lang.ClassLoader.loadClass(ClassLoader.java:248)
09:45:01,177 ERROR [STDERR] at
java.lang.Class.forName0(Native Method)
09:45:01,177 ERROR [STDERR] at
java.lang.Class.forName(Class.java:169)
09:45:01,177 ERROR [STDERR] at
org.apache.log4j.helpers.Loader.loadClass(Loader.java:178)
09:45:01,177 ERROR [STDERR] at
org.apache.juddi.v3.annotations.AnnotationProcessor.readServiceAnnotations(AnnotationProcessor.java:65)
09:45:01,177 ERROR [STDERR] at
org.apache.juddi.v3.annotations.AnnotationProcessor.readServiceAnnotations(AnnotationProcessor.java:53)
09:45:01,178 ERROR [STDERR] at
org.apache.juddi.v3.client.config.UDDIClerkManager.registerAnnotatedServices(UDDIClerkManager.java:137)
09:45:01,178 ERROR [STDERR] at
org.apache.juddi.v3.client.config.BackGroundRegistration.run(BackGroundRegistration.java:39)
09:45:01,178 ERROR [STDERR] at
java.lang.Thread.run(Thread.java:662)
09:45:01,178 INFO [UDDIClerkManager] Starting cross
registration...
09:45:01,178 INFO [UDDIClerkManager] Cross
registration completed
09:45:01,178 INFO [UDDIClerkManager] Clerks started
succesfully for manager uddi-portlet-manager
I'm sending my uddi.xml and esb.juddi.client.xml if it
is help to understand
Thanks!
--- Em *ter, 29/3/11, Kurt T Stam
/<[email protected]>/* escreveu:
De: Kurt T Stam <[email protected]>
Assunto: Re: Help to publish and find services into
juddi using jboss and esb
Para: [email protected], [email protected]
Data: Terça-feira, 29 de Março de 2011, 17:47
Hi Everson,
I have attached 2 jars and an updated config file.
1. Place the jars in deployers/esb.deployers/lib
The juddi-client-service jar will start the manager
and set 2 system parameters (managerName and nodeName)
The updated juddi-client.jar reads those
parameters, which means that at this point we can
handle multiple uddi.xml configs.
2. Replace the
jbossesb.sar/META-INF/jboss-service.xml, this will
run the MBean in the juddi-client-service.jar.
Make sure things work and then add your on war file
with your endpoints, and your client uddi.xml
config. Note that you can configure
the name of the manager and uddi.xml file to
something else in the web.xml using
context-parameters (uddi.client.config.file, and
uddi.client.manager.name), like
<context-param>
<param-name>uddi.client.manager.name</param-name>
<param-value>example-manager</param-value>
</context-param>
If this works for you I will add all the new code
to the jUDDI trunk.
Cheers,
--Kurt