Hi Kurt.
Hope you had a good weekend :)
I was able to create new web service that self-registers into the
juddi registry.
But there is an issue.
Prior to publishing the new service I had one service already that was
able register it self, but when I added the new service, the other one
disappeared.
There is this entry in src/main/webapp/WEB-INF/web.xml in both projects
<servlet>
<display-name>Clerk Servlet</display-name>
<servlet-name>UDDIClerkServlet</servlet-name>
<servlet-class>org.apache.juddi.v3.client.config.UDDIClerkServlet</servlet-class>
<init-param>
<param-name>uddi.client.manager.name
<http://uddi.client.manager.name></param-name>
<param-value>example-manager</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
As soon as I added this to my new web service the other one
disappeared when I deployed the new service.
Is this causing conflict between the two?
Name of the manager in both uddi.xml files is <manager
name="example-manager"> is this not supposed to be like that?
And the uddi.xml both have the same named clerk, but with different
class entry.
<clerks registerOnStartup="true">
<clerk name="SalesCratchit" node="default"
publisher="sales" password="sales">
<class>is.siminn.juddi.ws.HelloWorldImpl</class>
</clerk>
</clerks>
<clerks registerOnStartup="true">
<clerk name="SalesCratchit" node="default"
publisher="sales" password="sales">
<class>is.siminn.juddi.ws.AppImpl</class>
</clerk>
</clerks>
And the notations in the implementation classes are as follow.
@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://${serverName}:${serverPort}/taketwo/app?wsdl")
@WebService(
endpointInterface = "is.siminn.juddi.ws.App", serviceName = "App")
++++++++++++++++++++++++++++
@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://${serverName}:${serverPort}/selfregister/helloworld?wsdl")
@WebService(
endpointInterface = "is.siminn.juddi.ws.HelloWorld",
serviceName = "HelloWorld")
I.e. tha App is the new service.
What am I missing here?
Thanks.
-Gunnlaugur
On Fri, May 14, 2010 at 4:29 PM, Kurt T Stam <kurt.s...@gmail.com
<mailto:kurt.s...@gmail.com>> wrote:
Excellent. Looking forward to the documentation, also for the LDAP
work you did. We can then add it nicely
to the codebase :).
Have a great weekend too.
--Kurt
Gunnlaugur Sigurðsson wrote:
On Fri, May 14, 2010 at 3:54 PM, Kurt T Stam
<kurt.s...@gmail.com <mailto:kurt.s...@gmail.com>
<mailto:kurt.s...@gmail.com <mailto:kurt.s...@gmail.com>>> wrote:
2. Put the juddiv3.war and your WSs war on
the same
classloader,
may or may not be ideal, but then your WSs wars will be
nice and
light.
"on the same classloader" are you talking about same tomcat
instance?
yes, prob 3 is the better option.
3. Switch to JAXWSTransport. What you
really want to do is
to use
the WS stack of your appserver. Running JBoss we
have this
working
really cleanly where both CXF and Hibernate are
deployed to the
appserver (not in the juddiv3.war),
Do I have the same option here as in the self-registration
sample. I.e. just to add the annotation to the interface
implementation and use the following uddi.xml file, or do I
have to make any extra code to make the service
self-register?
Note: IT-operations here is only running Tomcat, so I don't
have the option of using jboss.
<?xml version="1.0" encoding="UTF-8"?>
<uddi>
<reloadDelay>5000</reloadDelay>
<manager name="example-manager">
<nodes>
<node>
<!-- required 'default' node -->
<name>default</name>
<properties>
<property name="serverName"
value="localhost"/>
<property name="serverPort"
value="8080"/>
</properties>
<!-- JAX-WS Transport -->
<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
<publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
<securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
</node>
</nodes>
</manager>
</uddi>
This should work, you just need to define a clerk and reference
the class with the annotations:
<clerks registerOnStartup="true">
<clerk name="BobCratchit" node="default"
publisher="sales" password="sales">
<class>org.apache.juddi.samples.HelloWorldImpl</class>
</clerk>
</clerks>
Finally it looks like its working! I.e. from my own ws :)
I'll create new web service just to make sure, and document
all steps.
Thanks and have a nice weekend.
-Gunnlaugur
Thanks.
-Gunnlaugur
--
Kveðja/Regards
Gunnlaugur Sigurðsson
gunnlaugur...@gmail.com <mailto:gunnlaugur...@gmail.com>
<mailto:gunnlaugur...@gmail.com <mailto:gunnlaugur...@gmail.com>>
Mobile: (+354) 896-7963
Home: (+354) 565-5229
--
Kveðja/Regards
Gunnlaugur Sigurðsson
gunnlaugur...@gmail.com <mailto:gunnlaugur...@gmail.com>
Mobile: (+354) 896-7963
Home: (+354) 565-5229