2015-07-18 1 views

Répondre

1

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.

+0

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

+0

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