Invalid stream or encoding: java.io.IOException: BufferedInputStream is closed

0 respostas
webservicejava
J

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.
Criado 14 de maio de 2017
Respostas 0
Participantes 1