Comment un wsimport client généré travail?

Avant toute chose, je veux que vous sachiez que je peux déjà vous connecter au serveur de services web. Je vous pose cette question parce que j'aimerais acquérir une connaissance plus approfondie sur la façon dont un wsimport généré le client fonctionne. En fonction de mes recherches, wsimport utilise JAXWS. Veuillez noter que je n'ai aucune connaissance de JAXWS.

J'ai généré mon client à l'aide de wsimport. Le WSDL que j'ai utilisé est à partir d'un Axis2 et le service web a été généré automatiquement par Axis2. Les classes ci-dessous sont les résultats de wsimport:

Sous com.datamodel.xsd

  • DataBeanRequest.java
  • DataBeanResponse.java
  • ObjectFactory.java
  • package-info.java

Sous com.service

  • MyWebService.java
  • MyWebServicePortType.java
  • MyMethod.java
  • MyMethodResponse.java
  • ObjectFactory.java
  • package-info.java

Avec les classes ci-dessus, je peux que dire que com.datamodel.xsd contient des fèves utilisées par le serveur de service web (à l'exclusion des ObjectFactory et package-info). Pendant ce temps, MyMethod et MyMethodResponse sont aussi des fèves utilisées pour définir la demande et de la réponse de paramètre de la méthode de service web/de l'opération.

Ci-dessous mes questions sont: (Vous n'avez donc pas à répondre à toutes si vous ne connaissez pas les réponses à certaines de mes questions. 🙂 Et n'hésitez pas à partager l'info que vous pensez que je pourrais trouver utile.)

Suis-je correct avec

  • Suis-je correct avec mes hypothèses ci-dessus?
  • Quels sont la fonction des autres classes?
  • J'ai inspecté MyWebService et qu'il contient une annotation se référant à l'emplacement absolu du fichier WSDL, j'ai utilisé pour générer le client. Quelle est la pertinence de la spécification de la wsdllocation dans le client? Comment le client ne peut utiliser cette info?
  • J'ai remarqué que l'URL du service web n'est pas déclaré dans l'une des classes générées. Comment le client de savoir où il doit se connecter à?
  • Était le fichier WSDL annoté de sorte que le client peut lire l'URL dans le fichier WSDL lors de la connexion? Si oui, alors ça veut dire que le fichier WSDL est toujours en lecture lors d'une nouvelle connexion doit être établie?
  • Car il y a un besoin pour moi de compiler mon application et l'installer sur un autre serveur, la volonté de devenir invalide. Puis-je le mettre à un chemin d'accès relatif au lieu d'un chemin d'accès absolu? Comment? (Réponse: Oui, il peut être réglé à un chemin d'accès relatif. Le wsimport commande a un wsdllocation attribut dans lequel la valeur de la wsdllocation peut être spécifié.)
  • Que faire si j'ai besoin de vous connecter à un site HTTPS. Comment puis-je régler le certificat de serveur?
  • Est là toute la différence quand je générer mon client à l'aide de wsimport et quand je le générer à l'aide de Axis2 ou Apache CXF.
InformationsquelleAutor Arci | 2012-09-03