Jump to content
Fórum Script Brasil
  • 0

Ajuda com Webservice + Ksoap2


Scotshild
 Share

Question

Olá pessoal, estou fazendo um trabalho da faculdade que tem um webservice. acontece que inicialmente eu quero só fazer um teste pra saber se minha aplicação ta conseguindo conectar no WebService de boa.

O WebService está hospedado na universidade e tem o seguinte endereço:

http://sistema.unir.br:8080/wsunir/ServicosAcademicosService?wsdl

A parte de teste que estou fazendo é com a função "consultar". Se eu digitar "1" o retorno deve ser "olá 1". É apenas uma função para teste.

O problema é que no momento de fazer a conexão ele entra, faz a conexão, mas quando vai pegar o resultado ele não consegue e pula para o catch.

Meu objeto usuario tem apenas uma string, é só pra guardar esse "Olá 1" que vai retornar...

Usuario.java

public class Usuario {
private String msg;

public Usuario(){

}

public Usuario(String msg) {
super();
this.msg = msg;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String toString(){
return "Mensagem: "+ this.msg;
}

}

Meu UsuarioDAO tem apenas a função de consultar

UsuarioDAO.java

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.util.Log;


public class UsuarioDAO {
private static final String URL = "http://sistema.unir.br:8080/wsunir/ServicosAcademicosService?wsdl";
private static final String NAMESPACE = "http://ws.unir.br/";

private static final String CONSULTAR = "consultar";

public Usuario consultar(String id){
Usuario usr=null;

SoapObject buscarUsuario = new SoapObject(NAMESPACE, CONSULTAR);
buscarUsuario.addProperty("id", id);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(buscarUsuario);
envelope.implicitTypes = true;

HttpTransportSE http = new HttpTransportSE(URL);


try {
http.call("urn:" + CONSULTAR, envelope);

//PASSOU DO HTTP.CALL

SoapObject resposta = (SoapObject) envelope.getResponse();

//AQUI ELE NÃO PASSOU E FOI PARA O CATCH

usr = new Usuario();

usr.setMsg(resposta.getProperty(0).toString());

} catch (Exception e) {
usr = new Usuario();
usr.setMsg("Falha na Conexão");
e.printStackTrace();
//return null;
}
return usr;
}
}

O MainActivity só mostra o que deu de resposta...

Em user = dao.consultar("1"); eu estou enviando esse 1 porque quero obter a resposta "Olá 1" MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

@[member="override"]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Usuario user = new Usuario();

UsuarioDAO dao = new UsuarioDAO();

user = dao.consultar("1");

TextView view = new TextView(this);
view.setText(user.getMsg());
setContentView(view);

}
}

Por favor pessoal, me ajudem aí eu não sei porque ele não está obtendo essa resposta do WebService. Já tentei muito resolver e não consegui.

Em XML, a resposta obtida é essa:

<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:consultarResponse xmlns:ns2="http://ws.unir.br/">
<return>Olá 1</return>
</ns2:consultarResponse>
</S:Body>
</S:Envelope>

Obs.: biblioteca ksoap2 instalada perfeitamente e funcionando.

Obs.2.: Realizei testes do WebService com o SoapUI e sim, ele está funcionando.

O stack está acusando nullPointerException, mas não sei o porquê. Sei que a minha aplicação é Android, mas meu problema é intrínseco com Java. Por favor, me ajudem.
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...