Não estou conseguindo rodar uma aplicação simples no Android. Alguém experiente pode me ajudar.
MainActivity
package com.tkcsapcd.tkcsapcdservice;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView listaUsuario;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btAbreCadastro = (Button) findViewById(R.id.btAbreTelaCadastro);
listaUsuario = (ListView) findViewById(R.id.lvUsuarios);
btAbreCadastro.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent(MainActivity.this, CadastoActivity.class);
startActivity(it);
}
});
//Testar se a versão do android, para deixar rodar o codigo de rede da activity
if(android.os.Build.VERSION.SDK_INT > 9){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
/*
//Inserir Usuario
boolean resultado = dao.inserirUsuario(new Usuario2(0,"Marina",26));
Log.d("Exemplo WS Inserir Usuário: ", resultado + "");
*/
//Consultar Usuário
//ArrayList<Usuario2> lista = dao.buscarTodosUsuarios();
//Log.d("Exemplo WS Buscar Todos Usuários: ", lista.toString());
}
@Override
protected void onResume() {
super.onResume();
Usuario2DAO dao = new Usuario2DAO();
ArrayList<Usuario2> lista = dao.buscarTodosUsuarios();
ArrayAdapter<Usuario2> adtUser = new ArrayAdapter<Usuario2>(this, android.R.layout.simple_list_item_1, lista);
listaUsuario.setAdapter(adtUser);
}
}
DAO
package com.tkcsapcd.tkcsapcdservice;
import java.util.ArrayList;
import java.util.Vector;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
//Acessar o Web-service
public class Usuario2DAO {
//Endereço de onde esta o web-service de adicionar o IP
private static final String URL = "http://IP:8080/Tkcsapcd_cadastros/services/Usuario2DAO?wsdl";
//Namespace do web-service. Endereco do pacote, onde foi criado no web-service
private static final String NAMESPACE = "http://webservice.tkcsa.com.br";
private static final String INSERIR = "inserirUsuario";
//private static final String EXCLUIR = "excluirUsuario";
//private static final String ATUALIZAR = "atualizarUsuario";
private static final String BUSCAR_TODOS = "buscarTodosUsuarios";
//private static final String BUSCAR_POR_ID = "buscarUsuarioPorId";
public boolean inserirUsuario(Usuario2 usuario2){
SoapObject inserirUsuario = new SoapObject( NAMESPACE, INSERIR);
SoapObject usr = new SoapObject(NAMESPACE, "usuario2");
usr.addProperty("id", usuario2.getId());
usr.addProperty("idade", usuario2.getIdade());
usr.addProperty("nome", usuario2.getNome());
inserirUsuario.addSoapObject(usr);
//Envelope para enviar para o webservice
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(inserirUsuario);
//Ativar para ser enviado o envelope
envelope.implicitTypes = true;
//Envia para web-sercive o envelope pela URL
HttpTransportSE http = new HttpTransportSE(URL);
try {
//Passando a ação no envelope
http.call("urn" + INSERIR, envelope);
//resposta do web-service
SoapPrimitive resposta = (SoapPrimitive) envelope.getResponse();
return Boolean.parseBoolean(resposta.toString());
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public boolean atualizarUsuario(Usuario2 usuario2){
return true;
}
//Sobrecarga
public boolean excluirUsuario(int id){
return excluirUsuario(new Usuario2(id, "", 0));
}
public boolean excluirUsuario(Usuario2 usuario2){
return true;
}
@SuppressWarnings("unchecked")
public ArrayList<Usuario2> buscarTodosUsuarios(){
ArrayList<Usuario2> lista = new ArrayList<Usuario2>();
SoapObject buscarTodosUsuarios = new SoapObject(NAMESPACE, BUSCAR_TODOS);
//Envelope para enviar para o webservice.
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(buscarTodosUsuarios);
//Ativar para ser enviado o envelope
envelope.implicitTypes = true;
//Envia para web-sercive o envelope pela URL
HttpTransportSE http = new HttpTransportSE(URL);
//enviando o envelope
try {
//Passando a ação no envelope
http.call("urn" + BUSCAR_TODOS, envelope);
Vector<SoapObject> resposta = (Vector<SoapObject>) envelope.getResponse();
//Para cada lista adicionar a resposta
for(SoapObject soapObject : resposta){
Usuario2 usr = new Usuario2();
usr.setId(Integer.parseInt(soapObject.getProperty("id").toString()));
usr.setIdade(Integer.parseInt(soapObject.getProperty("idade").toString()));
usr.setNome((soapObject.getProperty("nome").toString()));
lista.add(usr);
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return lista;
}
public Usuario2 buscarUsuarioPorId (int id){
Usuario2 usuario2 = null;
return usuario2;
}
}
Console:
05-13 20:44:57.697: I/System.out(2641): Envelope enviando para Web-service: org.ksoap2.serialization.SoapSerializationEnvelope@a0c6d158 05-13 20:44:57.697: I/System.out(2641): Http: org.ksoap2.transport.HttpTransportSE@a0c6e940 05-13 20:44:57.717: D/dalvikvm(2641): GC_CONCURRENT freed 321K, 4% free 12629K/13127K, paused 0ms+1ms 05-13 20:44:58.117: W/System.err(2641): Invalid stream or encoding: java.io.IOException: BufferedInputStream is closed (position:START_DOCUMENT null@1:1) caused by: java.io.IOException: BufferedInputStream is closed; nested exception is: 05-13 20:44:58.117: W/System.err(2641): java.io.IOException: BufferedInputStream is closed 05-13 20:44:58.117: W/System.err(2641): at java.io.BufferedInputStream.streamClosed(BufferedInputStream.java:118) 05-13 20:44:58.117: W/System.err(2641): at java.io.BufferedInputStream.read(BufferedInputStream.java:223) 05-13 20:44:58.117: W/System.err(2641): at org.kxml2.io.KXmlParser.setInput(KXmlParser.java:1623) 05-13 20:44:58.117: W/System.err(2641): at org.ksoap2.transport.Transport.parseResponse(Transport.java:117) 05-13 20:44:58.117: W/System.err(2641): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:275) 05-13 20:44:58.117: W/System.err(2641): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118) 05-13 20:44:58.117: W/System.err(2641): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113) 05-13 20:44:58.117: W/System.err(2641): at com.tkcsapcd.tkcsapcdservice.Usuario2DAO.inserirUsuario(Usuario2DAO.java:54) 05-13 20:44:58.117: W/System.err(2641): at com.tkcsapcd.tkcsapcdservice.MainActivity.onCreate(MainActivity.java:31) 05-13 20:44:58.117: W/System.err(2641): at android.app.Activity.performCreate(Activity.java:4466) 05-13 20:44:58.117: W/System.err(2641): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-13 20:44:58.117: W/System.err(2641): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-13 20:44:58.117: W/System.err(2641): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 05-13 20:44:58.117: W/System.err(2641): at android.app.ActivityThread.access$600(ActivityThread.java:123) 05-13 20:44:58.117: W/System.err(2641): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 05-13 20:44:58.117: W/System.err(2641): at android.os.Handler.dispatchMessage(Handler.java:99) 05-13 20:44:58.117: W/System.err(2641): at android.os.Looper.loop(Looper.java:137) 05-13 20:44:58.117: W/System.err(2641): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-13 20:44:58.117: W/System.err(2641): at java.lang.reflect.Method.invokeNative(Native Method) 05-13 20:44:58.117: W/System.err(2641): at java.lang.reflect.Method.invoke(Method.java:511) 05-13 20:44:58.117: W/System.err(2641): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-13 20:44:58.117: W/System.err(2641): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-13 20:44:58.117: W/System.err(2641): at dalvik.system.NativeStart.main(Native Method) 05-13 20:44:58.117: I/System.out(2641): Resposta Inserir usuário não enviado: org.xmlpull.v1.XmlPullParserException: Invalid stream or encoding: java.io.IOException: BufferedInputStream is closed (position:START_DOCUMENT null@1:1) caused by: java.io.IOException: BufferedInputStream is closed 05-13 20:44:58.117: I/System.out(2641): Resultado Inserir Usuário : false 05-13 20:44:58.117: D/Exemplo WS Inserir Usuário:(2641): false 05-13 20:44:58.137: I/dalvikvm(2641): threadid=3: reacting to signal 3 05-13 20:44:58.137: I/dalvikvm(2641): Wrote stack traces to '/data/anr/traces.txt’ 05-13 20:44:58.637: I/dalvikvm(2641): threadid=3: reacting to signal 3 05-13 20:44:58.637: I/dalvikvm(2641): Wrote stack traces to '/data/anr/traces.txt’ 05-13 20:44:59.147: I/dalvikvm(2641): threadid=3: reacting to signal 3 05-13 20:44:59.147: I/dalvikvm(2641): Wrote stack traces to '/data/anr/traces.txt’ 05-13 20:44:59.267: D/gralloc_ranchu(2641): Emulator without host-side GPU emulation detected.