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.
- Naviguez jusqu'au fichier wsdl dans votre navigateur, et de la télécharger sur votre système de fichiers.
- Accédez à tout ce dont elle dépend, et de le télécharger.
-
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
- 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.
- Copier le fichier à l'emplacement de votre fichier wsdl, comme ci-dessus
- 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!
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
Vous devez vous connecter pour publier un commentaire.
Enregistrer le wsdl pour votre système de fichiers local et de générer à partir de là, il semble qu'il s'agit d'un bug lors de l'Éclipse, et pls vérifier cette lien trop.
Cela fonctionne si vous aussi vous enregistrer toutes les dépendances (schéma), je vous remercie.
OriginalL'auteur
J'ai eu le même problème et le lien de la accepté de répondre ne fonctionne pas pour moi, mais j'ai généré le service en utilisant les étapes suivantes:
OriginalL'auteur erdemlal