J'essaie de personnaliser le contexte du servlet spring-ws de la même manière que pour mon contexte printanier. Pour le contexte initial (initialisé au démarrage du serveur), j'ai étendu le ContextLoader
et implémenté la classe ServletContextListener
, ce qui est similaire à ce que fait la classe org.springframework.web.context.ContextLoaderListener
. Je suis capable de personnaliser le contexte initial en remplaçant la méthode customizeContext(ServletContext servletContext, ConfigurableWebApplicationContext applicationContext)
et d'ajouter/supprimer des fichiers xml de contexte facultatifs en fonction des propriétés. J'ai été en mesure de définir cette classe comme écouteur dans mon fichier web.xml
au lieu de la valeur par défaut ContextLoaderListener
de Spring, et cela fonctionne comme prévu.Contexte personnalisé dans Spring-WS
Je cherche à adopter une approche similaire pour le contexte de servlet spring-ws (tous les beans définis dans WEB-INF\spring-ws-servlet.xml
), mais je n'ai pas trouvé de solution à ce problème. La seule chose que je peux penser est de faire en sorte que mon chargeur de contexte personnalisé génère aussi un fichier xml avec les beans 'facultatifs' à inclure, et que le contexte spring-ws-servlet
l'importe. Cependant, il s'agit d'une solution de piratage et je pense qu'il doit y avoir une meilleure approche. Est-ce que quelqu'un a des suggestions sur la façon de personnaliser le contexte de servlet spring-ws lorsque le premier service web est appelé?
J'utilise Spring 2.5.6 & Spring-WS 1.5.9
Merci à l'avance.
Je ne suis pas sûre de vous suivre. La logique 'ContextLoaderListener' s'applique aux contextes Webbapp racine, pas aux contextes servlet. Les servlets Spring-WS peuvent toujours accéder au contexte webapp racine comme vous l'avez fait précédemment avec vos servlets Spring standard. – skaffman
Vous pouvez déclarer un fichier XML distinct dans lequel vous pouvez déclarer vos beans Spring-WS. Voici un exemple http://krams915.blogspot.com/2010/12/spring-ws-2-and-spring-3-mvc.html Celui-ci utilise Spring Framework 3.xx et Spring WS 2.xx – chris
Merci à la fois de vous pour vos réponses. Je comprends que la logique ContextLoaderListener s'applique aux contextes de la Webapp racine, pas les contextes de servlet. J'essaie de personnaliser les contextes de servlet. EX- J'ai plusieurs beans définis dans mon context.xml. Ces beans sont chargés avec le contexte webapp racine. Ensuite, j'ai des points de terminaison définis comme des beans dans mon spring-ws-context.xml. Certains de ces points de terminaison ne sont pas nécessaires sauf si une certaine propriété est vraie ou fausse, donc je ne veux pas les charger. Je veux personnaliser le contexte de servlet (défini dans spring-ws-servlet). Endpoints mappés à l'aide d'annotations. – Steve