2017-01-10 1 views
0

Je voudrais demander comment puis-je spécifier les services Web SOAP dans JAX-WS, tel que si je veux un champ à remplir soit par valeur A ou de la valeur B. Toute autre valeur doit renvoyer une erreur.Enumeration paramètre pour WS SOAP dans JAX WS

J'ai pensé aux énumérations dans Java mais je n'ai toujours pas compris comment l'implémenter.

Avez-vous des suggestions? Merci d'avance.

Répondre

0

Vous pouvez utiliser des énumérations pour le même.

Dans votre XSD pour le WSDL, vous allez définir l'élément comme ci-dessous: -

<xsd:complexType name="Value"> 
    <xsd:sequence> 
     <xsd:element name="elementValue" type="constantType" /> 
    </xsd:sequence> 
</xsd:complexType> 


<xsd:simpleType name="constantType"> 
    <xsd:restriction base="xsd:string"> 
    <xsd:enumeration value="A" /> 
    <xsd:enumeration value="B" /> 
    </xsd:restriction> 
</xsd:simpleType> 

Dans l'exemple ci-dessus, vous dites qu'il ya un élément avec le nom valeurElément qui est constantType, constantType peut soit avoir valeur de A ou B qui sont de type String.

Lorsque vous parlez de SOAP, fondamentalement WSDL est un contrat que vous devrez partager avec votre utilisateur de service. Si un champ particulier ne peut avoir que deux valeurs, cela doit être mentionné dans votre contrat, c'est-à-dire WSDL.

En Java, vous pouvez utiliser Énumération pour définir cela comme ci-dessous: -

public enum ElementValue 
{ 
    A, 
    B; 
} 

Maintenant, vous pouvez accéder à ces valeurs avec ci-dessous la syntaxe: -

ElementValue.A 
ElementValue.B 
+0

Hey Amit Merci pour votre réponse, en fait Je génère le wsdl à partir du code java, donc je voudrais savoir comment faire ce que vous avez mentionné avec jax ws annotations c'est mon vrai problème. Une idée? – Sara