Voici mes conclusions en examinant le code source:
Comme SourceGenerator.java, wadltojava tente d'obtenir l'élément "ressources" de la "demande" élément et s'attend à ce qu'il soit unique. J'ai vérifié le WADL que vous avez fourni et semble avoir un seul élément "resources".
Lors de la vérification plus loin dans la méthode getWadlElements()
est d'utiliser getWadlNamespace()
:
private List<Element> getWadlElements(Element parent, String name) {
List<Element> elements = parent != null
? DOMUtils.getChildrenWithName(parent, getWadlNamespace(), name)
: CastUtils.cast(Collections.emptyList(), Element.class);
if (!"resource".equals(name)) {
for (int i = 0; i < elements.size(); i++) {
Element el = elements.get(i);
Element realEl = getWadlElement(el);
if (el != realEl) {
elements.set(i, realEl);
}
}
}
return elements;
}
L'espace de noms utilisé ici WadlGenerator.java est
public static final String WADL_NS = "http://wadl.dev.java.net/2009/02";
Mais dans votre WADL l'espace de noms semble être différent comme ci-dessous, et peut causer des problèmes.
<wadl:application xmlns:wadl="http://research.sun.com/wadl/2006/10" xmlns:xs="http://www.w3.org/2001/XMLSchema">
Il semble que vous utilisez CXF donc selon ma compréhension, je vous suggère d'utiliser le même cadre qui est utilisé pour générer le WADL.
Mise à jour: Ou, ayez les WADL et XSD sur votre ordinateur local et modifiez l'espace de noms manuellement dans WADL à la dernière et réessayez.
merci pour les détails. C'était bon à savoir. Je ne sais pas quel cadre a été utilisé pour générer ce wadl tiers. J'ai utilisé CXF_HOME \ bin \ wadl2java.bat – Espresso
Si vous avez le WADL en tant que fichier local, essayez de changer manuellement l'espace de noms en 'http: // wadl.dev.java.net/2009/02' et réessayez. Si vous téléchargez le fichier WADL, vous devrez peut-être télécharger les fichiers XSD du grammeur et les conserver dans le même emplacement/dossier. – Garry