2010-07-12 5 views
2

Les définitions des méthodes d'un service web m'ont été fournies par un tiers, j'ai créé les classes java et le plugin maven schemagen génère le xsd avec brio à partir des classes. J'ai alors mis en place une spring-ws-servlet etc. pour publier le wsdl, seules les classes WSDL11Definition nécessitent une requête et des réponsesuffix .... Je n'ai pas de suffixe. les noms de méthodes sont des choses comme getAttribute, setAttribute, refreshDetails, manageAttribute, etc. Est-ce que quelqu'un connaît un moyen de contourner cela? existe-t-il d'autres classes de définition wsdl qui peuvent être référencées pour le faire, ou peut-être d'autres fournisseurs (au lieu du suffixeProviders que la defaultWsdl11Definition utilise)?Comment générer un wsdl sans un suffixe de demande/réponse par défaut dans Spring?

Toute aide serait appréciée!

Répondre

1

Spring-WS est conçu autour "schema first" design, plutôt que "premier code":

Lors de la création de services Web, il y a deux styles de développement: Contrat Dernière et le Contrat Première. Lors de l'utilisation d'une approche dernier contrat , vous commencez avec le code Java, et que le contrat de service Web (WSDL, voir l'encadré) soit généré à partir de cela. Lorsque vous utilisez le contrat d'abord, vous commencez avec le contrat WSDL et utilisez Java pour mettre en œuvre ledit contrat. Spring-WS ne prend en charge que le style de développement , et cette section explique pourquoi.

Vous pouvez « premier code » faire fonctionner avec, mais vous allez avoir un combat sur vos mains. Si vous voulez coller avec Spring-WS, alors je vous suggère fortement d'utiliser la spécification de service Web pour écrire un schéma XML décrivant les opérations, puis générer Java à partir de ce schéma, ou écrire le Java à la main.

+1

Merci - J'espérais éviter d'avoir à écrire le WSDL à la main car je n'ai pas trop chaud :-(Je devrais vraiment m'en tenir à Spring car je suis censé coller avec les outils que nous utilisons sur d'autres projets - pour éviter de hacher et de changer constamment tout le temps Nous avons suivi ce processus auparavant, mais nous avons toujours utilisé les suffixes Request et Response – Rainyday

+1

@Rainyday: Vous n'avez pas besoin d'écrire le WSDL à la main, juste le schéma. WS va générer le WSDL pour vous, une chose que vous pourriez essayer est de générer un schéma comme vous le faites actuellement, puis de le modifier à la main pour vous conformer aux attentes de Spring-WS, ce qui serait une tâche unique. – skaffman

Questions connexes