Bom dia a todos.
Estou criando um WebService através do NetBeans 6.9 e Glassfish v3.0, porém, estou com dificuldades em formatar a mensagem de resposta (XML).
Segue os procedimentos realizados:
[list]Criei um projeto Web chamado WebApplicationTeste:[/list]
[list]Criei uma classe Pessoa (pojo):[/list][code]package br.com.teste;
public class Pessoa {
private String nome;
private int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}[/code]
[list]Criei um WebService chamado NewWebService:[/list][code]package br.com.teste.ws;
import br.com.teste.Pessoa;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class NewWebService {
@WebMethod(operationName = "getPessoa")
public Pessoa getPessoa() {
Pessoa pessoa = new Pessoa();
pessoa.setNome("Matheus");
pessoa.setIdade(29);
return pessoa;
}
}[/code]
Ao chamar o método getPessoa() do WebService, os atributos são apresentados na seguinte ordem: idade e nome. Gostaria de alterar a ordenação dos atributos no arquivo de saída para: nome e idade.
Para isso, criei uma pasta chamada wsdl abaixo do diretório WEB-INF e gerei através do assistente do NetBeans os arquivos .wsdl e .xsd (schema XML).
Alterei o Schema XML para que os atributos sejam apresentados na ordem correta:[code]<?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?>
<xs:schema version=“1.0” targetNamespace="http://ws.teste.com.br/"
xmlns:tns=“http://ws.teste.com.br/” xmlns:xs=“http://www.w3.org/2001/XMLSchema”>
<xs:element name=“getPessoa” type=“tns:getPessoa”/>
<xs:element name=“getPessoaResponse” type=“tns:getPessoaResponse”/>
<xs:complexType name=“getPessoa”>
<xs:sequence/>
</xs:complexType>
<xs:complexType name=“getPessoaResponse”>
<xs:sequence>
<xs:element name=“return” type=“tns:pessoa” minOccurs=“0”/>
</xs:sequence>
</xs:complexType>
<xs:complexType name=“pessoa”>
<xs:sequence>
<xs:element name=“nome” type=“xs:string” minOccurs=“0”/>
<xs:element name=“idade” type=“xs:int”/>
</xs:sequence>
</xs:complexType>
</xs:schema>[/code]
Também alterei o WebService para apontar o wsdl da pasta WEB-INF.[code]package br.com.teste.ws;
import br.com.teste.Pessoa;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(wsdlLocation=“WEB-INF/wsdl/NewWebServiceService.wsdl”)
public class NewWebService {
@WebMethod(operationName = "getPessoa")
public Pessoa getPessoa() {
Pessoa pessoa = new Pessoa();
pessoa.setNome("Matheus");
pessoa.setIdade(29);
return pessoa;
}
}[/code]
Ao executar o WebService, a ordem dos atributos não é alterada, ou seja, permanece apresentando a sequência: idade e nome.
Gostaria de saber como devo proceder para que os atributos do XML Response respeitem o schema (.xsd)?
Obrigado.
Matheus