package br.com.caelum.stella.nfe.ws.sp.status; import javax.xml.bind.JAXBElement; import javax.xml.ws.Holder; import org.w3c.dom.Node; import br.com.caelum.stella.nfe.Estados; import br.com.caelum.stella.nfe.JaxBHelper; import br.com.caelum.stella.nfe.VersaoNFE; import br.com.caelum.stella.nfe.xsd.status.TConsStatServ; import br.com.caelum.stella.nfe.xsd.status.TRetConsStatServ; public class ConsultaStatusSaoPauloHomolog { private final VersaoNFE versao; private final Estados sp = Estados.SP; public ConsultaStatusSaoPauloHomolog(VersaoNFE versao) { this.versao = versao; } public StatusServico consulta() { ObjectFactory objectFactoryWS = new ObjectFactory(); br.com.caelum.stella.nfe.xsd.status.ObjectFactory objectFactoryXSD = new br.com.caelum.stella.nfe.xsd.status.ObjectFactory(); NfeCabecMsg cabec = objectFactoryWS.createNfeCabecMsg(); cabec.setCUF(sp.getCodigo()); cabec.setVersaoDados(versao.getVersao()); Holder<NfeCabecMsg> holderCab = new Holder<NfeCabecMsg>(cabec); NfeDadosMsg dados = objectFactoryWS.createNfeDadosMsg(); TConsStatServ status = new TConsStatServ(); status.setCUF(sp.getCodigo()); status.setTpAmb("2"); status.setVersao(versao.getVersao()); status.setXServ("STATUS"); dados.getContent().add(objectFactoryXSD.createConsStatServ(status)); NfeStatusServico2Soap12 servico = new NfeStatusServico2().getNfeStatusServico2Soap12(); NfeStatusServicoNF2Result result = servico.nfeStatusServicoNF2(dados, holderCab); TRetConsStatServ object = new JaxBHelper().unmarshalNode(result.getContent().get(0),TRetConsStatServ.class); return new StatusServico(object); } }