J'ai un WSDL avec plusieurs schémas et j'essaie d'obtenir wsimport
pour générer du code dans les paquets de mon choix par schéma. En utilisant l'option -b avec un fichier de liaison JAX-WS/JAX-B, j'ai réussi à le faire.Génération de paquets par schéma avec les liaisons wsimport et JAX ignore les classes de service
Seules deux classes sont toujours générées dans le chemin par défaut: l'interface de service et l'implémentation du service. En revanche, avec l'option -p, toutes les classes sont générées en un seul paquet, mais lorsque j'utilise toutes les liaisons définies dans le fichier externe, elles sont ignorées.
Quel est le XPath pour le service afin que wsimport
génère ces fichiers dans mes paquets? J'ai essayé des choses comme
<jaxws:bindings node="wsdl:definitions/wsdl:service"> ...
<jaxws:bindings node="wsdl:definitions/wsdl:binding"> ...
<jaxws:bindings node="wsdl:definitions/wsdl:portType"> ...
mais ni eu aucun effet.
Exemple:
<jaxws:bindings
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
wsdlLocation="myService.wsdl"
>
<!-- this works for schemas -->
<jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='http://org.com/service/1.0']" >
<jaxb:schemaBindings>
<jaxb:package name="com.myorg.service.v1" />
</jaxb:schemaBindings>
</jaxws:bindings>
<!-- the following does nothing -->
<jaxws:bindings node="wsdl:definitions/wsdl:service">
<jaxb:schemaBindings>
<jaxb:package name="com.myorg.service.v1" />
</jaxb:schemaBindings>
</jaxws:bindings>
</jaxws:bindings>
Qu'entendez-vous par "par schéma"? L'interface de service et son implémentation ne sont-elles pas indépendantes des schémas XML? – VGR
Le service est, mais les objets requête/réponse utilisés sont répartis sur différents schémas. – Stroboskop