ce que nous pourrions essayer de distinguer les classes, objets et services.
Vous avez quelque chose comme ça?
@javax.jws.WebService
public class ServiceAAA{
public String echo(String arg) {
// some really nice code here
}
}
et que vous voulez ajouter
@javax.jws.WebService
public class ServiceBBB{
public String superEcho(String arg) {
// even more code here
// which needs to reuse the code from A's echo()
}
}
Il est donc clair que nous ne voulons pas couper et coller entre les deux implémentations. Comment réutilisons-nous?
Alternative 1:
appeler directement A de B. Vous demandez comment faire. Cela pourrait être fait. Vous devez simplement coder un appel client JAX-WS dans votre implémentation. Cependant, je recommande vivement contre cela. Un appel de service est susceptible d'être plus coûteux qu'un simple appel Java.
Ne le faites que si vous n'avez pas la possibilité de déployer les deux classes de service ensemble.
Alternative 2:
Réorganisez l'implémentation. Il suffit de déplacer le code dans une classe de travailleurs.
@ javax.jws.WebService ServiceAAA public class {
MyWorker worker = new Worker();
public String echo(String arg) {
return worker.doSomething(arg) ;
}
}
@ javax.jws.WebService ServiceBBB public class {
MyWorker worker = new Worker();
public String superEcho(String arg) {
worker.doSomething(arg) ;
// and some morestuff
}
}
Merci d'avoir répondu! Je veux appeler A à partir de B. L'objectif ici est d'utiliser la même base de code et l'infrastructure i.e - Réutiliser l'instance en cours d'exécution. –
OK, je comprends maintenant. Je vais modifier légèrement ma réponse. – djna