Service Provider plugin fails to load required interfaces
I have written a Java plugin for RTC 4.0.6 which is an extension to com.ibm.team.repository.service.serviceProvider.
I have also declared 2 prerequisite interfaces for this plugin.
Everything looks ok, apparently there are no syntax errors, and the plugin is build correctly.
Anyway, at runtime, the 2 required interfaces are not loaded, and I receive en exception that prevents the plugin from running.
It seems that the application server fails to parse the plugin configuration.
These are the contents of the plugin.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="com.ibm.team.repository.service.serviceProvider">
<serviceProvider
componentId="com.ibm.team.mycustomer"
implementationClass="com.ibm.team.mycustomer.service.PluginUtility">
<provides>
<providedService interface="com.ibm.team.mycustomer.common.IPluginUtility"/>
</provides>
<prerequisites>
<requiredService interface="com.ibm.team.repository.service.IRepositoryItemService"/>
<requiredService interface="com.ibm.team.workitem.service.IWorkItemServer"/>
</prerequisites>
</serviceProvider>
</extension>
</plugin>
Any guess?
I have also declared 2 prerequisite interfaces for this plugin.
Everything looks ok, apparently there are no syntax errors, and the plugin is build correctly.
Anyway, at runtime, the 2 required interfaces are not loaded, and I receive en exception that prevents the plugin from running.
It seems that the application server fails to parse the plugin configuration.
These are the contents of the plugin.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="com.ibm.team.repository.service.serviceProvider">
<serviceProvider
componentId="com.ibm.team.mycustomer"
implementationClass="com.ibm.team.mycustomer.service.PluginUtility">
<provides>
<providedService interface="com.ibm.team.mycustomer.common.IPluginUtility"/>
</provides>
<prerequisites>
<requiredService interface="com.ibm.team.repository.service.IRepositoryItemService"/>
<requiredService interface="com.ibm.team.workitem.service.IWorkItemServer"/>
</prerequisites>
</serviceProvider>
</extension>
</plugin>
Any guess?
Accepted answer
I have used this in https://rsjazz.wordpress.com/2012/11/30/a-create-approval-work-item-save-participant/ and it worked for me.
Comments
Actually, I think that my syntax is correct.
I suppose that the service provider plugin is unable to retrieve the services because, being a service provider and neither an advisor nor a participant, it is not triggered by the Jazz server, so its plugin.xml is not parsed and its list of required services is empty (I debugged it, so I am sure that this list is empty).
Anyway, I solved the problem in a different way, by making each advisor and participant plugin retrieve the services and pass them to the service provider.
Comments
Ralph Schoon
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Jul 20 '15, 2:52 a.m.It would be way more helpful if you had provided the error message.
Luca Martinucci
Jul 20 '15, 2:57 a.m.This is the errror message:
The service 'com.ibm.team.mycustomer.service.PluginUtility@cd40cd4' failed to find the required service 'interface com.ibm.team.workitem.service.IWorkItemServer'. Check <prerequisites> in plugin.xml.