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</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 <[email protected]> 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 <[email protected]<mailto:
>> [email protected]>> 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
>> [email protected] <mailto:[email protected]>
>>
>> Mobile: (+354) 896-7963
>> Home: (+354) 565-5229
>>
>
>
--
Kveðja/Regards
Gunnlaugur Sigurðsson
[email protected]
Mobile: (+354) 896-7963
Home: (+354) 565-5229