Comment générer un client de service web dans Eclipse à partir d'un wsdl à une adresse https?

Je peux générer un client de

http://localhost:8080/service?wsdl

très bien, mais maintenant, je veux générer un client de

https://localhost:8081/service?wsdl

et Eclipse indique l'emplacement n'est pas valide, et lors de l'Eclipse rend la tentative de mon serveur Jetty dit

javax.net.le protocole ssl.SSLException: Reçu alerte fatale: certificate_unknown

Je peux naviguer facilement dans le langage wsdl dans mon navigateur après la confirmation de l'exception de sécurité, il est donc bel et bien là.

J'ai essayé de télécharger le fichier wsdl à mon système de fichiers local, mais je n'arrive pas à générer à partir de là parce que le wsdl contient une référence à d'autres https endroits, par exemple.

<xsd:import namespace="http://my.service.namespace/" schemaLocation="https://localhost:8081/serviceSchema?xsd=1"/>

J'ai modifié eclipse.ini pour contenir les lignes suivantes:

-Djavax.net.ssl.trustStore="/path/to/my/truststore/.keystore"
-Djavax.net.ssl.trustStorePassword="mytruststorepassword"
-Djavax.net.ssl.keyStore="/path/to/my/keystore/.keystore"
-Djavax.net.ssl.keyStorePassword="mykeystorepassword"

en vain. Eclipse ne semble pas avoir de préférence les paramètres liés à ce soit. Est-il possible de le faire via eclipse, ou devrai-je utiliser certains outil externe?

EDIT:
Pour d'autres avec le même problème, voici comment je l'ai résolu.

  1. Naviguez jusqu'au fichier wsdl dans votre navigateur, et de la télécharger sur votre système de fichiers.
  2. Accédez à tout ce dont elle dépend, et de le télécharger.
  3. Ouvrir la dépendance que vous venez de télécharger avec un navigateur et copier son nouvel emplacement, par exemple.

    file:///chemin/vers/mon/schema/service.xsd

  4. Collez-le dans votre téléchargé le fichier wsdl où son adresse https est, répétez l'opération pour tout autre schéma, et de les enregistrer.
  5. Copier le fichier à l'emplacement de votre fichier wsdl, comme ci-dessus
  6. Dans Eclipse, générer un Nouveau->Autres...->Client de Service Web et le coller à l'emplacement du fichier dans la définition du service, et cela devrait fonctionner. Merci à tous pour l'aide!
Vous devez télécharger le fichier WSDL, et tous les artefacts (par exemple, xsd) dont il dépend. Modifier l'emplacement du schéma et de générer votre client... n'oubliez pas d'ajouter ces fichiers wsdl pour vous le système de contrôle de version (c'est votre contrat)
mais si je modifie l'emplacement du schéma, de ne pas le client de générer de façon incorrecte?
Pourquoi? Vous devez toujours définir l'adresse de point de terminaison dans votre code... tout le reste fonctionne, tout simplement pour 'bonjour le monde' applications. Dans le monde réel, vous pouvez avoir différentes adresses des points de terminaison pour la production, la mise en scène, test, etc.
Dans le meilleur des cas, le fournisseur de service publie le langage wsdl et XSDs sans références absolues.
Je vais donner un coup de feu. J'étais tout simplement en vertu de la (mauvaise?) l'hypothèse que vous ne devriez jamais modifier les fichiers automatiquement créés, en particulier quand ils vont être utilisés pour produire d'autres artefacts.

OriginalL'auteur Eric B | 2012-09-19