Je ne connais pas encore les services Web. J'ai développé un exemple de service Web comme indiqué ci-dessous.Axis2 Web Service - Versioing
J'essaie d'ajouter un nouveau champ dans les données, disons boolean sucess;. (Juste pour apprendre la rétrocompatibilité)
Lorsque j'ajoute le nouveau champ, comme je m'attendais, l'appel de service échoue à partir du talon du client.
Comment gérer différentes versions de services. quelles sont toutes les options que j'ai?
Je suis passé par de nombreux articles sur le net (malheureusement il n'y a pas d'exemples. :(). Et peu d'options sont
1) opération d'écriture différente dans la classe avec la nouvelle sortie. C'est ce que j'ai compris.
2) Avoir un versionnement pour le service. Comme les services/version1/SumAndMult, services/version2/SumAndMult
Comment puis-je obtenir la deuxième option? Quelle est l'idée derrière cette option? Pour conserver la copie des classes de service?
Si je n'ai qu'une classe de service sur mon serveur, comment puis-je exposer plusieurs wsdls?
De même, quel est le meilleur moyen de maintenir la compatibilité ascendante?
public Data getSumAndMultData(int[] input){
Data result = new Data();
int sum = 0;
int mult = 1;
for(int i = 0; i < input.length; i++){
sum += input[i];
mult *= input[i];
}
result.setMult(mult);
result.setSum(sum);
return result;
}
class Data{
int sum;
int mult;
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public int getMult() {
return mult;
}
public void setMult(int mult) {
this.mult = mult;
}
}
Comme
Merci beaucoup pour votre réponse. Je suis conscient de l'ajout de plusieurs services dans le service.xml. Vous avez mentionné que "ajouter un nouveau service Web avec son propre WSDL". Dois-je créer une nouvelle classe de service côté serveur avec le nouvel objet Response? – Jack
Oui, vous aurez une classe de service différente pour chaque service. – Kenster