Pour tester le service web, j'utilise deux méthodes :
_ L'interrogation via un navigateur en entrant une url du type :
Ces deux tests sont concluant et retourne le flux XML attendu
_ L'interrogation via l'exécution d'une classe java.
Voici le code de la classe appelante :
package fr.gouv.meeddat.server;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator;
import fr.gouv.meeddat.server.Paie_marinStub.GetPositionsAgents;
import fr.gouv.meeddat.server.Paie_marinStub.GetPositionsAgentsResponse;
import fr.gouv.meeddat.server.Paie_marinStub.Positions;
public class LanceurWebServiceClient {
/**
* @param args
*/
public static void main(String[] args) {
Paie_marinStub lStub = null;
try {
lStub = new Paie_marinStub("http://***serveur_dev***/axis2-1.4.1/services/paie_marin");
Authenticator lAuthentification = new Authenticator();
lAuthentification.setUsername("******");
lAuthentification.setPassword("******");
lAuthentification.setPreemptiveAuthentication(true);
lStub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, lAuthentification);
} catch (AxisFault e){
e.printStackTrace();
}
GetPositionsAgents lRequete = new GetPositionsAgents();//DEF D'UNE NVLLE REQUETE
String lDateDebut = "01-02-2008";
String lDateFin = "31-12-2999";
lRequete.setDateFin(lDateFin);
lRequete.setDateDebut(lDateDebut);//LA REQUETE EST PRETE
try {
GetPositionsAgentsResponse lReponse = lStub.getPositionsAgents(lRequete);
Positions[] lPositions = lReponse.getPositionsAgents();
System.out.println("\n----------------------------------------------");
for (int i = 0; i < lPositions.length; i++) {
System.out.println("Num agent : "+lPositions[i].getNumeroAgent());
System.out.println("Service : "+lPositions[i].getService());
System.out.println("Site Code : "+lPositions[i].getSiteCode());
System.out.println("Date debut : "+lPositions[i].getDateDebut());
System.out.println("Date Fin : "+lPositions[i].getDateFin());
System.out.println("----------------------------------------------\n");
}
} catch (RemoteException e){
e.printStackTrace();
}
}
}
Je change juste
lStub = new Paie_marinStub("http://***serveur_dev***/axis2-1.4.1/services/paie_marin");pour interroger soit le serveur de dev soit mon tomcat en local.
En local, tout est ok, dans la console, les données suivantes s'affichent :
----------------------------------------------
Num agent : TRH000131
Service : 0E20
Site Code : CPAR
Date debut : 2008-03-01
Date Fin : 0099-12-31
----------------------------------------------
Num agent : TRH000133
Service : 2071
Site Code : CPAR
Date debut : 2008-05-15
Date Fin : 0099-12-31
----------------------------------------------
Num agent : TRH000133
Service : DG01
Site Code : CPAR
Date debut : 2008-05-15
Date Fin : 0099-12-31
----------------------------------------------
alors qu'en interrogeant le serveur de dev, j'ai le message :
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at fr.gouv.meeddat.server.Paie_marinStub.getPositionsAgents(Paie_marinStub.java:207)
at fr.gouv.meeddat.server.LanceurWebServiceClient.main(LanceurWebServiceClient.java:36)
Si vous avez des idées, je suis preneur.
Merci.
Partager