Pessoal, tenho o seguinte código abaixo:
[code]public SimpleCancellableTask getTskEnviar() {
if (tskEnviar == null) {
// write pre-init user code here
tskEnviar = new SimpleCancellableTask();
tskEnviar.setExecutable(new org.netbeans.microedition.util.Executable() {
public void execute() throws Exception {
// write task-execution user code here
try{
String namespace = “http://tempuri.org/CadastrarTeste”;
String url_ws = “http://localhost:2925/Service_Chamados.asmx”;
String method =“CadastrarTeste”;
SoapObject request = new SoapObject(namespace, method);
request.addProperty("NOM_USUR", txtNome.getString());
request.addProperty("TEL_USUR", txtTelefone.getString());
request.addProperty("ALTURA", txtAltura.getString());
request.addProperty("PESO", txtPeso.getString());
HttpTransport HttpTransport = new HttpTransport(url_ws);
HttpTransport.setUrl(url_ws);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransport.call(namespace, envelope);
}
catch(Exception e)
{
e.getMessage();
//e.printStackTrace();
}
}
});
// write post-init user code here
}
return tskEnviar;
}[/code]
Ele simplesmente não dá nenhum erro.
Debuguei e passa por todas as linhas sem nenhuma exception.
A questão é que quando eu faço um select no banco para verificar se foi inserido, não consta nada lá.
Alguem sabe o que pode estar acontecendo?
Na verdade… ele está inserindo, mas NULO no banco.
Debugando, os valores dos textboxs são passados, mas acredito que quando passa pelo HttpTransport.call(namespace, envelope);, já vão nulos para o método do meu WebService.
Bom dia
Posta trecho do código do WebService pra gente tentar ajudar
[quote=Cmcampos1986]Pessoal, tenho o seguinte código abaixo:
[code]public SimpleCancellableTask getTskEnviar() {
if (tskEnviar == null) {
// write pre-init user code here
tskEnviar = new SimpleCancellableTask();
tskEnviar.setExecutable(new org.netbeans.microedition.util.Executable() {
public void execute() throws Exception {
// write task-execution user code here
try{
String namespace = “http://tempuri.org/CadastrarTeste”;
String url_ws = “http://localhost:2925/Service_Chamados.asmx”;
String method =“CadastrarTeste”;
SoapObject request = new SoapObject(namespace, method);
**** SoapPrimitive resultString= null;
request.addProperty("NOM_USUR", txtNome.getString());
request.addProperty("TEL_USUR", txtTelefone.getString());
request.addProperty("ALTURA", txtAltura.getString());
request.addProperty("PESO", txtPeso.getString());
HttpTransport HttpTransport = new HttpTransport(url_ws);
HttpTransport.setUrl(url_ws);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransport.call(namespace, envelope);
*** resultString = (SoapPrimitive)envelope.getResponse();
}
catch(Exception e)
{
e.getMessage();
//e.printStackTrace();
}
}
});
// write post-init user code here
}
return tskEnviar;
}[/code]
Ele simplesmente não dá nenhum erro.
Debuguei e passa por todas as linhas sem nenhuma exception.
A questão é que quando eu faço um select no banco para verificar se foi inserido, não consta nada lá.
Alguem sabe o que pode estar acontecendo?[/quote]
Amigão nas minhas chamadas eu utilizo o SoapPrimitive eu coloquei em “***”
faz esse teste
abraços
Opa… e ai Marcos blza?
Só para vcs entenderem, eu tenho uma tela com 4 campos e nela eu insiro as informações.
Depois eu chamo no web service um método que vai inserir no banco. Isso através de uma proc que faz um insert.
Tudo o que eu insiro nos campos, é mostrado os valores no Debug, mas depois q ele passa do HttpTransport.call(namespace, envelope);, os dados ficam nulos.
Bem estranho!
Fiz o que vc pediu cara, não deu certo.
Tá difícil de descobrir isso!
e ae Cmcampos1986 então no aplicativo android que estou desenvolvendo como eu to trabalhando com Bluetooth e não consigo debugar o que eu faço
A cada try{}catch(Exception) e coloco essa classe que para gravar qualquer erro num banco de dados sql e funciona tranquilo a diferença é que estou desenvolvendo com o eclipse e os valores eu estou passando como parametro.
Espero que ajude
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class GravaErro{
private static String DS_ERRO = null;
private static String DS_ROTINA = null;
private static final String SOAP_ACTION ="";
private static final String METHOAD_NAME = "Insere_Erro";
private static final String NAMESPACE = "";
private static final String URL ="";
public static void grava(String Erro,String Rotina){
gravar_erro(Erro,Rotina);
}
private static void gravar_erro(String DS_Erro, String DS_Rotina)
{
SoapObject Request = new SoapObject(NAMESPACE,METHOAD_NAME);
Request.addProperty("Erro",DS_Erro);
Request.addProperty("Rotina",DS_Rotina);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope (SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut = Request;
envelope.setOutputSoapObject(Request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.debug = true ;
androidHttpTransport.call(SOAP_ACTION, envelope);
envelope.getResponse();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Bom Marcos, descobri o mistério!
Eu estava declarando a parte dos parâmetro dessa forma:
requisicao.addProperty("NOM_USUR", _nome); // Adiciona o valor do primeiro parâmetro do web service
requisicao.addProperty("TEL_USUR", _telefone); // Adiciona o valor do segundo parâmetro do web service
requisicao.addProperty("ALTURA", _altura); // Adiciona o valor do terceiro parâmetro do web service
requisicao.addProperty("PESO", _peso); // Adiciona o valor do quarto parâmetro do web service
Masss… na minha cabeça, o primeiro parâmetro a ser passado no .addProperty era o nome da coluna da minha tabela no Banco de Dados e não o nome das variáveis que seram passadas no método do meu Web Service.
Abaixo a declaração correta:
requisicao.addProperty("nom_usur", _nome); // Adiciona o valor do primeiro parâmetro do web service
requisicao.addProperty("tel_usur", _telefone); // Adiciona o valor do segundo parâmetro do web service
requisicao.addProperty("alt_usur", _altura); // Adiciona o valor do terceiro parâmetro do web service
requisicao.addProperty("pes_usur", _peso); // Adiciona o valor do quarto parâmetro do web service
A assinatura do meu método no Web Service é essa: public string CadastrarTeste(string nom_usur, string tel_usur, string alt_usur, string pes_usur)
Bom… resolvido!
Agora ele está inserindo!
Tudo bem que foi vacilo meu e tudo foi uma questão de conceito e entendimento do addProperty.
Mas tranquilo… como estou começando a usar o J2ME a pouco tempo, é normal essas dificuldades.
Muito obrigado pela ajuda cara!
Abraço