Comment résoudre ServiceConstructionException: Impossible de trouver la définition du service?
J'ai une application simple avec un service web créé avec Apache CXF
. Cette application fonctionne quand je lance le serveur et le client (comme Java
applications). Lorsque j'essaie d'accéder à l'application /services
URL, ce qui est mappé dans web.xml
Tomcat
me donne 404
erreur. Quand je lance le projet-je recevoir:
org.apache.cxf.service.usine.ServiceConstructionException: impossible de trouver une définition pour le service {http://sendmessage/}SendMessage
Si quelqu'un a des conseils liés à cette erreur, je serais heureux de les entendre. (J'ai cherché sur google et je ne pouvais pas trouver quelque chose de pertinent à ma situation)
Merci!
source d'informationauteur ariel_ro
Vous devez vous connecter pour publier un commentaire.
J'ai eu la même erreur, le mien était lié à l'espace de noms qui étaient différents dans le wsdl et webservice. J'ai donc changé pour le même.
WSDL:
Classe Webservice:
Même j'ai eu un problème similaire.
Qu'il est corrigé par la mise à jour de la jaxws:point de terminaison.
J'ai ajouté le serviceName (cartographie du nom présent dans le fichier WSDL) avec le nom de l'espace tel que défini dans les "targetNamespace" défini dans le fichier wsdl:definitions tag.
édité(06Jul)
Aussi, j'ai aujourd'hui qui, avec Apache CXF version 3.0.5 cette question n'est pas de venir;
Mais avec Apache CXF version 3.1, ce qui est à venir.
ServiceConstructionException peuvent se produire à diverses étapes lorsque cxf compare le service fourni, le port et la liaison de nom avec le wsdl il a déjà analysé. Dans ce cas ( et dans la plupart des cas), il semble être question de l'espace de noms.
{http://sendmessage/}SendMessage
est pas présente dans analysé wsdl ou le nom du service ne correspond pas à la QName présents dans le fichier WSDL. Il y a d'autres cas où la liaison ou le port ne correspond pas, on peut recevoir la même exception. Voici un code snippit deorg.apache.cxf.wsdl11.WSDLServiceFactory.create()
méthode où tout se passe.Si les choses ne sont pas clair exactement pourquoi cela se passe votre meilleur pari est de débogage ce morceau de code et de voir où il est défaillant et qu'est ce qu'il y a dans analysé wsdl définition (
com.ibm.wsdl.DefinitionImpl
dans wsdl4j.jar).PS: je sais que cette question a été ouvert en 2011, mais récemment, j'ai connu le même problème et a pu le résoudre. J'espère que ça aidera d'autres personnes qui sont confrontées à ce problème.