2010-05-31 9 views
0

J'ai différents Spring Web Services, qui sont inclus dans le contexte par l'annotation Endpoint , il n'y a donc pas de dépendances malgré l'annotation (pas d'interface, etc.). Par conséquent, aucune information de "contexte" n'est présente.Spring Web Services: Demande de service Web de redirection

Maintenant, je veux enchaîner une demande de service Web, à savoir. un point d'extrémité est appelé, qui lui-même doit appeler un service Web sur le même serveur. Je peux utiliser le WebServiceTemplate de Spring, cependant, j'ai besoin de l'adresse du serveur courant pour cette requête.

Y a-t-il un moyen d'injecter cette URL lors du démarrage de l'application dans les points de terminaison? Puisque les Endpoints ne développent pas de classe, il n'y a aucun moyen d'obtenir cette information n'importe où dans les Endpoints, les paramètres de requête n'ont pas cette information (ce sont de simples classes JAXB, qui sont rassemblées sur demande).

Répondre

0

Je crois que la meilleure option est d'envoyer l'URL dans le cadre de la demande.

Ceci vous permet également de changer dynamiquement l'URL vers un troisième serveur plus tard.

+0

C'est vrai, cependant, je ne l'ai pas. Il géré par Spring en interne et je ne sais pas comment y accéder. Mes classes (Endpoints) sont appelées avec les objets JAXB purs. – Ice09

+0

La classe 'WebServiceTemplate' de Spring a une méthode' getDefaultUri() 'que vous pouvez utiliser. – Espen

+0

Mais d'où vient-elle? Quelque part, le WebServiceTemplate doit être défini dans le contexte de l'application et il doit être défini ici, n'est-ce pas? Comme j'utilise le WebServiceTemplate à l'intérieur du Endpoint (chaînage ...), je ne connais pas l'adresse du serveur, à condition que Spring ne fournisse pas une telle propriété "par lui-même", qui pourrait être injectée au démarrage dans le point de terminaison . – Ice09

Questions connexes