pour que la post-function invokeWSOperation décrite ci-dessus fonctionne, il faut qu'elle corresponde à une configuration présente dans le fichier remote-services-configs.xml de la contribution (ou du workflow par défaut comme le cas qu'on présente ici) Info |
---|
Comme le suggère le titre de cette page, l'appel au service distant (HAL dans cet exemple) n'est pas direct : il se fait via le module ORI-OAI-ext, ce qui permet de masquer la diversité de ces services derrière une interface unique, et de les invoquer d'une unique manière. Si l'on parle de configuration d'appels à un service distant, cela signifie donc en fait configuration de la communication avec ORI-OAI-ext et même, pour être plus précis, avec un plugin existant dans ORI-OAI-ext. |
Comme le fichier addonContext.xml, remote-services-configs.xml est un fichier de configuration Spring. Il comprend donc un certain nombre de déclarations de beans Spring. Plus précisément, ce fichier doit déclarer : Unordered List (ul) |
---|
List Item (li) |
---|
uniquement des beans de classe org.orioai.workflow.beans.remote.RemoteServiceConfig |
List Item (li) |
---|
un bean RemoteServiceConfig par méthode ou fonction d'un service distant à appeler |
|
Ainsi, pour l'appel à la méthode upload du service hal, on trouvera dans remote-services-configs.xml :
Code Block |
---|
| xml |
---|
| xml |
---|
title | Configuration nécessaire à l'appel de la méthode upload du service hal |
---|
|
<bean class="org.orioai.workflow.beans.remote.RemoteServiceConfig">
<property name="halUserId" value="${ext.hal.account.id}" />
<property name="halUserPassword" value="${ext.hal.account.password}" />
<property name="wsId" value="hal" />
<property name="wsMethodId" | <argvalue="upload" />
<property name= | "wsId">hal</arg>
"metadataTypeId" value="dc_plus_fr_easy" />
<property name="statusKey" value="halArtStatus" />
<!--+
| Keys are proper to ori-oai-ext
| Values are xpathes proper to the current metadataType
| <argwsMethodId>upload</arg>>
<map>
<entry key="fullTextName" value="//dc:title" />
<entry key="fullTextFormat" value="//dc:format" />
<entry key="fullTextUri" value="//dc:relation[@xsi:type = 'dcfr:file']" />
<entry key="envoiHal" value="//dcterms:accessRights[@xsi:type = 'dcfr:envoi_HAL']" />
| </function>
<function type="spring">
<arg name="bean.name">saveOrUpdateIndex</arg>
<arg name="idOriIndexing">indexingServicePublic</arg>
</function>
<function type="spring">
<arg name="bean.name">saveXmlHistory</arg>
</function>
</map>
</property>
<!--+
| Keys are xpathes proper to the current metadataType
| Values are proper to ori-oai-ext
|
| NOTE : to edit one node with several values, values keys must
| be space separated and the last key must be followed by a pipe
| followed by the character which will separate the multiple values
| in the node.
+-->
<property name="xmlContentEditionParams">
<map>
<entry key="//dc:identifier[@xsi:type = 'dcfr:hal_id']" value="halArtId halArtVersion halArtPassword|," />
</map>
</property>
<!-- Keys are proper to ori-oai-workflow -->
<property name="downloadResourcesParams">
<map>
<!--+
| the value associated with downloadDecisionKey
| is a key in xPathesParams
+-->
<entry key="downloadDecisionKey" value="envoiHal" />
<entry key="downloadDecisionValues" value="file_hal link_file_hal" />
<entry key="resourcesUrisKey" value="fullTextUri" />
<entry key="downloadWsId" value="download" />
<entry key="downloadWsMethodId" value="downloadResource" />
</ | post-functions> action>
|