Galera,
estou recebendo uma String de retorno de um WebService.
Esta String, obviamente, vem em formato XML.
Estou querendo criar objetos a partir deste retorno, mas só tá dando erro!
Pensei a seguinte maneira:
Pego a String, transformo em XML, e a partir do XML crio uma Lista de OrdemServico.
Segue o Código:
public List<OrdemServico> recebeGetData(final String xml){
//stream.alias("transicao", OrdemServico.class);
stream.autodetectAnnotations(true);
stream.processAnnotations(OrdemServico.class);
System.out.println("Retorno: " + integrador.getData(idEmpresa, dsLogin, dsSenha, xml));
InputStream is = new ByteArrayInputStream( integrador.getData(idEmpresa, dsLogin, dsSenha, xml).getBytes() );
return (List<OrdemServico>) stream.fromXML( is );
}
e a Classe OrdemServico
@XStreamAlias("transicao")
public class OrdemServico {
private String tipoOrdemServico = "";
private String ordemServico = "";
private String sincronizadaDispositivo = "";
private String statusOrdemServico = "";
private String data = "";
private String hora = "";
private Calendario calendario = new Calendario();
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
public String getOrdemServico() {
return ordemServico;
}
public void setOrdemServico(String ordemServico) {
this.ordemServico = ordemServico;
}
public String getSincronizadaDispositivo() {
return sincronizadaDispositivo;
}
public void setSincronizadaDispositivo(String sincronizadaDispositivo) {
this.sincronizadaDispositivo = sincronizadaDispositivo;
setData( calendario.extrairDataHora(sincronizadaDispositivo)[0] );
setHora( calendario.extrairDataHora(sincronizadaDispositivo)[1] );
}
public String getStatusOrdemServico() {
return statusOrdemServico;
}
public void setStatusOrdemServico(String statusOrdemServico) {
this.statusOrdemServico = statusOrdemServico;
}
public String getTipoOrdemServico() {
return tipoOrdemServico;
}
public void setTipoOrdemServico(String tipoOrdemServico) {
this.tipoOrdemServico = tipoOrdemServico;
}
o XML é este:
<retorno xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="3983347" xmlns="http://www.osmobile.com.br">
<conexao>
<empresa>77</empresa>
<usuario>telefonica1</usuario>
<eventos>
<evento>
<tipo>OK</tipo>
<mensagem>Conectado</mensagem>
<dataHora>2009-02-19T16:37:13.84375-03:00</dataHora>
</evento>
</eventos>
</conexao>
<processamento>
<validacaoXml>
<eventos>
<evento>
<tipo>OK</tipo>
<mensagem>Validado</mensagem>
<dataHora>2009-02-19T16:37:13.84375-03:00</dataHora>
</evento>
</eventos>
</validacaoXml>
<transicoes>
<transicao id="10257302">
<empresa>77</empresa>
<tipoOrdemServico>Net SP Cop Rede Fluxo1_COPIADO</tipoOrdemServico>
<ordemServico>OC5</ordemServico>
<status>Executada</status>
<nome>SINCRONIZADA</nome>
<usuario>cleber</usuario>
<habilitada>2008-11-25T18:11:16.993-03:00</habilitada>
<executada>2008-11-25T18:11:16.993-03:00</executada>
<sincronizadaServidor>2008-11-25T18:11:16.563-03:00</sincronizadaServidor>
<sincronizadaDispositivo>2008-11-25T17:12:08.993-03:00</sincronizadaDispositivo>
<statusOrdemServico>Sincronizada</statusOrdemServico>
</transicao>
<transicao id="10257327">
<empresa>77</empresa>
<tipoOrdemServico>Net SP Cop Rede Fluxo1_COPIADO</tipoOrdemServico>
<ordemServico>OC5</ordemServico>
<status>Executada</status>
<nome>LIDA</nome>
<usuario>cleber</usuario>
<habilitada>2008-11-25T18:11:21.723-03:00</habilitada>
<executada>2008-11-25T18:11:21.723-03:00</executada>
<sincronizadaServidor>2008-11-25T18:12:00.843-03:00</sincronizadaServidor>
<sincronizadaDispositivo>2008-11-25T17:12:53.27-03:00</sincronizadaDispositivo>
<statusOrdemServico>Lida</statusOrdemServico>
</transicao>
<transicao id="10257345">
<empresa>77</empresa>
<tipoOrdemServico>Net SP Cop Rede Fluxo1_COPIADO</tipoOrdemServico>
<ordemServico>OC5</ordemServico>
<status>Executada</status>
<nome>FIM</nome>
<usuario>cleber</usuario>
<habilitada>2008-11-25T18:12:34.567-03:00</habilitada>
<executada>2008-11-25T18:12:34.567-03:00</executada>
<sincronizadaServidor>2008-11-25T18:12:37.907-03:00</sincronizadaServidor>
<sincronizadaDispositivo>2008-11-25T17:13:24.73-03:00</sincronizadaDispositivo>
<statusOrdemServico>Finalizada</statusOrdemServico>
</transicao>
<transicao id="10257342">
<empresa>77</empresa>
<tipoOrdemServico>Net SP Cop Rede Fluxo1_COPIADO</tipoOrdemServico>
<ordemServico>OC5</ordemServico>
<status>Executada</status>
<nome>Imagem1</nome>
<usuario>cleber</usuario>
<habilitada>2008-11-25T18:11:23.46-03:00</habilitada>
<executada>2008-11-25T18:12:34.567-03:00</executada>
<sincronizadaServidor>2008-11-25T18:12:37.907-03:00</sincronizadaServidor>
<sincronizadaDispositivo>2008-11-25T17:13:24.73-03:00</sincronizadaDispositivo>
<statusOrdemServico>Ativa</statusOrdemServico>
<variaveis>
<variavel nome="imagem1">
<valor>Imagem anexada ao repositório.</valor>
</variavel>
</variaveis>
</transicao>
</transicoes>
<eventos />
</processamento>
<eventos />
</retorno>
Alguém poderia me ajudar??