5
respostas

Curso JAX-WS Aula 3 : Mãos a obra: Dados obrigatórios

E para fazer com que esta parte não seja opcional também?:

? ? ? ?

5 respostas

Oi Douglas, perdão, eu não entendi. Pode dar um exemplo aqui? Pergunto porque no exercício ele mostra a annotation com o required=true.

Não um atributo dele, mas o Item.

? ? ? ?

Mas o item é a parte principal, se você não colocar não vai chegar nada do outro lado. Você deixar propriedades opcionais.

Mas mesmo assim esta aparecendo Optional no WSDL, como na aula mesmo diz para pensar no cliente, ela vai estar recebendo esta palavra quando na verdade não é opcional. Tem como fazer para o item Inteiro ser required ?

Fala aí Douglas, blz?

Você pode usar a mesma anotação @XmlElement(required=true) em conjunto com a anotação @WebParam(name="item").

@WebMethod(operationName="CadastrarItem")
    public Item cadastrarItem(
@WebParam(name="token", header=true) TokenUsuario token,
@WebParam(name="item") @XmlElement(required=true) Item item) throws AutorizacaoException{

O uso da anotação @XmlElement(required=true) controla o numero de ocorrências no XSD.

Quando não usamos a anotação o nosso XSD fica assim:

<xs:complexType name="CadastrarItem">
<xs:sequence>
<xs:element name="item" type="tns:item" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

Com o parâmetro minOccurs="0"

Ao ao usar a anotação o XSD fica assim:

<xs:complexType name="CadastrarItem">
<xs:sequence>
<xs:element name="item" type="tns:item"/>
</xs:sequence>
</xs:complexType>

Sem o parâmetro minOccurs="0"

Espero ter ajudado e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software