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]
[img]http://img816.imageshack.us/img816/1679/imagem001o.jpg[/img]
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;
}
}
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;
}
}
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.
[img]http://img207.imageshack.us/img207/2530/imagem003d.jpg[/img]
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).[img]http://img23.imageshack.us/img23/2339/imagem002jv.jpg[/img]
Alterei o Schema XML para que os atributos sejam apresentados na ordem correta:<?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>
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;
}
}
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