Talend - Exporter un job dans un fichier WAR

, par  admin

Avant de commencer...

Votre serveur Tomcat (ou autre) doit être opérationnel.
Axis2 doit être correctement installé Installer Axis2 dans Tomcat
Attention : des erreurs sont rencontrées lorsque le chemin du worspace de Talend contient des espaces. Pour éviter ces problèmes, nous avons défini notre emplacement par défaut dans C :\workspace\

Exporter le Job

Clic droit sur le job (stocks 0.1 dans notre exemple) puis construire le job.
PNG
Cliquez sur terminer puis placer l’archive .war dans le dossier webapps de Tomcat.
L’application doit se déployer automatiquement.

Exécuter le Web Service

Vérifiez le bon déroulement du déploiement :
http://localhost:8080/stocks_0.1/servlet/AxisServlet
Cette url doit normalement afficher la page And now... Some Services puis le wsdl
PNG
Le fichier web.xml contient bien la balise <servlet-name>AxisServlet</servlet-name>
De le même manière, l’url http://localhost:8080/stocks_0.1/servlet/AdminServlet doit renvoyer Server is running.

Lancez le job
http://localhost:8080/stocks_0.1/services/stocks?method=runJob

Vous devez obtenir un résultat similaire à celui -ci :

<?xml version="1.0" encoding="UTF-8"?>
-<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-<soapenv:Body>
-<runJobReturn xsi:type="ns1:runJobReturn" xmlns="http://talend.org" xmlns:ns1="http://talend.org">
-<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">0</ns1:item>
</ns1:item>
</runJobReturn>
</soapenv:Body>
</soapenv:Envelope>

le code <ns1:item xsi:type="xsd:string">0</ns1:item> nous retourne une valeur à 0 signifiant l’absence d’erreurs dans l’exécution de webservice.

Après le chargement de cette page, les instructions contenues dans le Job doivent être normalement exécutées.

Si vous rencontrez une erreur du type The AXIS engine could not find a target service to invoke ! targetService is stocks, il est probable que votre Job a été compilé dans un workspace dont le chemin contenait des espaces. Dans mon cas, le fait de modifier le chemin du workspace a résolu le problème.

<?xml version="1.0" encoding="UTF-8"?>
-<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-<soapenv:Body>
-<soapenv:Fault>
<faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.NoService</faultcode>
<faultstring>The AXIS engine could not find a target service to invoke! targetService is stocks</faultstring>
-<detail>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">dev</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Consultation des les logs en temps réel sous linux :

A bientôt pour de nouveaux tutos sur les webservices !

Un peu de théorie... Tous les cours théoriques