Harvester - Connexion au Web service

Note : A partir de la version 1.5.0, cette partie est tombée en désuétude et obsoléte, et les services ne sont plus maintenus ni utilisables.

Utiliser les Web services

Le moissonneur expose des services SOAP pour récupérer les fiches qui ont été integrées.

URL du service et du fichier descripteur

L'URL du service est le suivant :
{url de déploiement}/ws/xfire/HarvesterWebService
Exemple : http://localhost:8080/ori-oai-harvester/ws/xfire/HarvesterWebService

L'URL du fichier descripteur WSDL est la suivante :
{url de déploiement}/ws/xfire/HarvesterWebService?WSDL
Exemple : http://localhost:8080/ori-oai-harvester/ws/xfire/HarvesterWebService?WSDL

Note : ceci est paramétré dans le fichier WEB-INF/xfire-servlet.xml

Configuration d'un client avec Spring et XFire


Pour configurer un client de ce service avec Spring et Xfire, suivre les étapes suivantes :

  • Inclure le jar Xfire dans votre librairie, disponible sur [la page de téléchargement|http://xfire.codehaus.org/Download] (ou reprendre le jar inclus dans le moissonneur xfire-all-1.2.4.jar)
  • Ajouter le fichier Java de l'interface dans les sources : /org/orioai/harvesting/domain/service/ProviderService
  • Enfin, déclarer un bean dans le contexte d'application :
<bean id="indexingWebServiceClient"
class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="serviceClass">
<value>
org.orioai.harvesting.domain.service.ProviderService
</value>
</property>
<property name="wsdlDocumentUrl">
<value>[http://localhost:8080/ori-oai-harvester/ws/xfire/HarvesterWebService?WSDL]</value>
</property>
</bean>

Ensuite, utiliser ce bean avec les méthodes implémentées par l'interface ProviderService :

public interface ProviderService {
		/**
	 * Returns a metadata record for a given id and prefix
	 * @param id
	 * @param prefix
	 * @return string containing xml record
	 */
	String getRecordFromPrefix(String id, String prefix);
	/**
	 * Returns a metadata record for a given id and namespace
	 * @param id
	 * @param namespace
	 * @return string containing xml record
	 */
	String getRecordFromNamespace(String id, String namespace);
}
  • No labels