2010-05-10 5 views
1

Je crée un service Web et la génération d'un contrat (WSDL) avec Axis2 comme un service Web POJO qui est à son tour me donner une sortie comme celui-ciSuppression Nillable = « true » tout en générant WSDL

<xs:element minOccurs="0" name="acHolderName" nillable="true" type="xs:string"/> 

Tandis que le requis est celui-ci

Y at-il une annotation qui peut me faire faire ceci ou toute autre meilleure mise en œuvre?

Répondre

1

L'attribut nil est documenté here. Du point de vue de la sérialisation des objets java, il permet à un attribut d'objet d'avoir une valeur NULL et reste un document XML valide. C'est la manière par défaut de représenter les objets Java dans un schéma XML, car les attributs d'objets ne sont pas forcés à être peuplés en Java.

Si vous voulez plus de contrôle sur le WSDL, vous devez envisager d'utiliser quelque chose comme JAXWS. Le problème ici est que le support de cette technologie n'est pas très mature dans Axis2, et c'est plus compliqué à déployer, à mon avis. Si vous voulez un contrôle absolu sur votre WSDL (en l'utilisant comme spécification d'interface), il est probablement préférable de l'utiliser pour générer le code Java au lieu d'espérer que votre Java se conformera aux spécifications de quelqu'un d'autre.

+0

Si vous utilisez Apache avec JAX-WS, vous êtes probablement mieux avec Apache CXF. – Powerlord

+0

Vraiment apprécier pour votre temps à répondre :) Mais toute la question ici est une approche de haut en bas. Comme je l'ai dit il y a un WSDL qui a le dernier tag XML et je suis supposé utiliser ce seul. Pour ANALYSER j'ai généré WSDL (Note: Suivi Bottom Up pour vérifier ce que WENT WRONG ??) Généré on avait nillable = "true" pour tous les champs dans POJO. Ma question ici est "Dois-je implémenter quoi que ce soit dans le POJO de sorte que lorsque je génère un WSDL, il omet automatiquement le nillable =" true "?" – Sandeep

+0

Ne peut pas être fait en utilisant des services Web basés sur POJO, autant que je sache. L'attribut nil est conçu pour représenter une valeur NULL pour l'objet. Bien sûr, l'attribut minOccurs = "0" pourrait aussi représenter une valeur NULL et c'est ce qui conduit à la confusion dans le rendu du service web des objets Java ... Je ne sais pas pourquoi il y a deux mécanismes ... la spécification XML Schema :-( –

Questions connexes