2011-12-08 7 views
0

J'ai créé un service web CXF et toutes les méthodes fonctionnent à l'exception des méthodes où un argument est un Enum. J'ai généré mon code javaclient en utilisant la commande wsdl2java.Apache CXF Enum donne jaxbexception

public enum OrderDirection { 
    DESC, ASC; 

    public String value() { 
     return name(); 
    } 
} 

Lorsque je tente en cours d'exécution, par exemple, getAllUsers (orderBy, OrderDirection.DESC); Je reçois une exception:

[javax.xml.bind.JAXBException: class com.tdr.wsclient.OrderDirection nor any of its super class is known to this context.] 

La définition wsdl pour la OrderDirection Enum ressemble à ceci:

<xs:simpleType name="orderDirection"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="DESC"/> 
     <xs:enumeration value="ASC"/> 
    </xs:restriction> 
    </xs:simpleType> 

Répondre

0

Ce fut une erreur dans mon interface. J'ai eu dans un voyage acide défini mes énumérations comme ceci:

List<User> getAllUsers(String orderBy, Enum<OrderDirection> direction); 

devrait ressembler à ceci:

List<User> getAllUsers(String orderBy, OrderDirection direction);