Olá pessoas...tô com um probleminha aqui...tenho um Data "CEP" com os Métodos de pesquisarEstado e pesquisarCidade...
Cidade tem os atributos nome,codigo,estado
e estado tem nome,uf,codigo
OMElement result = sender.sendReceive(payload);
public Estado[] pesquisarEstado(Estado estado) {
EndpointReference endPoint = new EndpointReference(
"EndPointAqui");
String nameSpace = "NameSpaceAqui";
String nomeMetodo = "pesquisarEstado";
List<Estado> lst = new ArrayList<Estado>();
try {
Options options = new Options();
options.setTo(endPoint);
options.setAction("urn:" + nomeMetodo);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(nameSpace, nomeMetodo);
OMNamespace xsi = fac.createOMNamespace(
Constants.URI_DEFAULT_SCHEMA_XSI,
Constants.NS_PREFIX_SCHEMA_XSI);
OMElement payload = fac.createOMElement(nomeMetodo, omNs);
OMElement param = fac.createOMElement("codigo", omNs);
if (estado.getCodigo() != null) {
param.setText(estado.getCodigo().toString());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
param = fac.createOMElement("uf", omNs);
if (estado.getUf() != null) {
param.setText(estado.getUf());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
param = fac.createOMElement("descricao", omNs);
if (estado.getNome() != null) {
param.setText(estado.getNome());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
OMElement result = sender.sendReceive(payload);
Iterator rows = result.getChildElements();
while (rows.hasNext()) {
OMElement row = (OMElement) rows.next();
OMElement codigo = row.getFirstChildWithName(new QName(omNs
.getNamespaceURI(), "codigo"));
OMElement uf = row.getFirstChildWithName(new QName(omNs
.getNamespaceURI(), "uf"));
OMElement nome = row.getFirstChildWithName(new QName(omNs
.getNamespaceURI(), "descricao"));
Estado est = new Estado();
est.setCodigo(Integer.parseInt(codigo.getText()));
est.setNome(nome.getText());
est.setUf(uf.getText());
lst.add(est);
}
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
if (lst.size() > 0)
return lst.toArray(new Estado[lst.size() - 1]);
else
return lst.toArray(new Estado[0]);
}
public Cidade[] pesquisarCidade(Cidade cidade) {
EndpointReference endPoint = new EndpointReference(
"EndPointAqui");
String nameSpace = "NameSpaceAqui";
String nomeMetodo = "pesquisarCidade";
List<Cidade> lst = new ArrayList<Cidade>();
try {
Options options = new Options();
options.setTo(endPoint);
options.setAction("urn:" + nomeMetodo);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(nameSpace, nomeMetodo);
OMNamespace xsi = fac.createOMNamespace(
Constants.URI_DEFAULT_SCHEMA_XSI,
Constants.NS_PREFIX_SCHEMA_XSI);
OMElement payload = fac.createOMElement(nomeMetodo, omNs);
OMElement param = fac.createOMElement("codigo", omNs);
if (cidade.getCodigo() != null) {
param.setText(cidade.getCodigo().toString());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
param = fac.createOMElement("codigoEstado", omNs);
if (cidade.getEstado().getCodigo() != null) {
param.setText(cidade.getEstado().getCodigo().toString());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
param = fac.createOMElement("descricao", omNs);
if (cidade.getNome() != null) {
param.setText(cidade.getNome());
payload.addChild(param);
} else {
param.addAttribute(fac.createOMAttribute("nil", xsi, "true"));
payload.addChild(param);
}
OMElement result = sender.sendReceive(payload);
Iterator rows = result.getChildElements();
while (rows.hasNext()) {
OMElement row = (OMElement) rows.next();
OMElement codigo = row.getFirstChildWithName(new QName(omNs
.getNamespaceURI(), "codigo"));
OMElement codigoEstado = row.getFirstChildWithName(new QName(
omNs.getNamespaceURI(), "codigoEstado"));
OMElement nome = row.getFirstChildWithName(new QName(omNs
.getNamespaceURI(), "descricao"));
Estado est = new Estado();
est.setCodigo(Integer.parseInt(codigoEstado.getText()));
Cidade cid = new Cidade();
cid.setCodigo(Integer.parseInt(codigo.getText()));
cid.setNome(nome.getText());
cid.setEstado(est);
lst.add(cid);
}
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
}
if (lst.size() > 0)
return lst.toArray(new Cidade[lst.size() - 1]);
else
return lst.toArray(new Cidade[0]);
}