7
votes

Chemin relatif de WSDL dans le client WebService CXF

Dans ma demande, j'utilise de nombreux services Web. Lorsque le WSDL ne change pas, j'ai intégré les fichiers WSDL de mon projet. Si j'utilise l'outil WSDL2JAVA à partir de CXF, le chemin Absolute Emplacement WSDL est codé en papier.

Maintenant ma question est de changer le paramètre "WSDLocation" dans l'annotation @webserviceclient sur un chemin relatif?

Voici un exemple: xxx


0 commentaires

3 Réponses :


0
votes

L'outil WSDL2JAVA a un drapeau -WSDLLocation qui peut être utilisé pour spécifier la chaîne exacte qui est placée là-bas.


1 commentaires

Je pense que je n'étais pas assez clair. Je veux mettre le WSDLLocation sur un chemin relatif.



2
votes

Voici ce que l'on peut faire pour générer un emplacement de WSDL vide

<wsdlOptions>
  <wsdlOption>
    <wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
    <extraargs>
      <extraarg>-wsdlLocation</extraarg>
      <wsdlurl />
    </extraargs>
  </wsdlOption>
</wsdlOptions>


1 commentaires

Veillez à ce qu'avec cette méthode, les stratégies présentes dans la WSDL ne sont pas utilisées.



11
votes

J'ai finalement compris comment faire cela correctement aujourd'hui. Il suffit de mettre les fichiers est votre dossier de ressources, puis vous pouvez utiliser WSDLLLocation pour le faire référence relativement comme ceci:

<wsdlLocation>classpath:wsdl/myservice.wsdl</wsdlLocation>


2 commentaires

Combinez avec car si vous utilisez uniquement le ne fonctionne pas!


Malheureusement, cela échoue à la version 3.4.4 du plug-in en raison de "URL WSDL invalide: CLASSPATH". Si je supprimais le path de classe: il préfixe le chemin complet qui n'est pas correct pour le déploiement