2017-10-18 14 views
1

Dans l'exemple wsdl_first d'Apache CXF, le fichier pom place le fichier wsdl dans WEB-INF /. Tous les fichiers xml et le fichier wsdl dans src/main/resources se retrouvent également dans WEB-INF/classes, car ils sont dans src/main/resources.Pourquoi le fichier wsdl doit-il être dans WEB-INF (dans Apache CXF)?

Je déploie la webapp dans tomcat.

Ma question est: quand je supprime le fichier wsdl de WEB-INF et les fichiers XML et le fichier wsdl de WEB-INF/classes (et redémarrer Tomcat), la webapp fonctionne toujours. Pourquoi le fichier pom place-t-il explicitement le fichier wsdl dans WEB-INF? Et pourquoi les fichiers xml et le fichier wsdl sont-ils dans WEB-INF/classes?

Dans src/main/webapp, il y a web.xml et cxf-servlet.xml. Ils finissent dans WEB-INF /. Quand je les enlève, les choses vont mal.

Répondre

0

Alors rappelez-vous qu'un WSDL est la définition officielle d'une interface de service. En d'autres termes, si vous voulez créer un client pour un service SOAP, vous avez besoin d'un WSDL. Vous pouvez utiliser ce fichier WSDL pour générer ensuite des artefacts de code pour le client. Il est presque exactement similaire à la génération d'un serveur à partir d'un WSDL.

Maintenant, le dossier WEB-INF est publié et lorsque le WSDL est là, il est également publié. Cela permettra aux clients d'accéder au WSDL. Cependant, le WSDL n'est pas nécessaire pour que le service s'exécute. Ainsi, nous pouvons supprimer le WSDL.

Vous supprimez généralement le WSDL lorsque vous sécurisez un service contre la navigation publique. Cela supprimera la possibilité pour quiconque de se procurer la définition de service.

Rappelez-vous le WSDL est juste une définition utilisée pour générer des objets dans divers langages tels que Java, .Net, etc.

Cependant, il est pas nécessaire pour un serveur SOAP ou client pour exécuter. Juste pour la génération de code.