Webservice + eclipse + android

4 respostas
J

Ola Pessoal crie um webservice no eclipe para que o android possa consulmir ela fiz os teste com ws e esta ok porem quando faco a conexao com android esta dando erro
a minha classe esta assim

package br.com.dsoft;

import android.app.Activity;

import android.os.Bundle;

import org.ksoap2.SoapEnvelope;

import org.ksoap2.serialization.SoapObject;

import org.ksoap2.serialization.SoapPrimitive;

import org.ksoap2.serialization.SoapSerializationEnvelope;

import org.ksoap2.transport.HttpTransportSE;

import org.ksoap2.serialization.PropertyInfo;
import android.widget.TextView;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;
public class WebActivity extends Activity {

/** Called when the activity is first created. */

private static final String NAMESPACE = <a href="http://br.webservice.br">http://br.webservice.br</a>”;

private static String URL=<a href="http://localhost:8080/Webservice/services/Dsoftws?WSDL">http://localhost:8080/Webservice/services/Dsoftws?WSDL</a>”;

private static final String METHOD_NAME = algo;

private static final String SOAP_ACTION =  <a href="http://br.webservice.br/algo">http://br.webservice.br/algo</a>”;
private TextView lblResult;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    System.out.println("Ola Carrega lbserul");
    
    lblResult = (TextView) findViewById(R.id.result);
    
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    
    PropertyInfo propInfo=new PropertyInfo();
    propInfo.name="arg0";
    propInfo.type=PropertyInfo.STRING_CLASS;
    
    request.addProperty(propInfo, "John Smith");  

   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

   envelope.setOutputSoapObject(request);
  HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

   try {
    androidHttpTransport.call(SOAP_ACTION, envelope);
    
     SoapPrimitive  resultsRequestSOAP = (SoapPrimitive) envelope.getResponse();
    

   lblResult.setText(resultsRequestSOAP.toString());
     
   
    } catch (Exception e) {
  	  
     
    }

   }

}

meu ws esta assim

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions targetNamespace=“http://br.webservice.br” xmlns:apachesoap=“http://xml.apache.org/xml-soap” xmlns:impl=“http://br.webservice.br” xmlns:intf=“http://br.webservice.br” xmlns:wsdl=“http://schemas.xmlsoap.org/wsdl/” xmlns:wsdlsoap=“http://schemas.xmlsoap.org/wsdl/soap/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>

wsdl:types
















</wsdl:types>

<wsdl:message name=“algoRequest”>

<wsdl:part element="impl:algo" name="parameters">

  </wsdl:part>

</wsdl:message>

<wsdl:message name=“algoResponse”>

<wsdl:part element="impl:algoResponse" name="parameters">

  </wsdl:part>

</wsdl:message>

<wsdl:portType name=“Dsoftws”>

<wsdl:operation name="algo">

     <wsdl:input message="impl:algoRequest" name="algoRequest">

   </wsdl:input>

     <wsdl:output message="impl:algoResponse" name="algoResponse">

   </wsdl:output>

  </wsdl:operation>

</wsdl:portType>

<wsdl:binding name=“DsoftwsSoapBinding” type=“impl:Dsoftws”>

<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

  <wsdl:operation name="algo">

     <wsdlsoap:operation soapAction=""/>

     <wsdl:input name="algoRequest">

        <wsdlsoap:body use="literal"/>

     </wsdl:input>

     <wsdl:output name="algoResponse">

        <wsdlsoap:body use="literal"/>

     </wsdl:output>

  </wsdl:operation>

</wsdl:binding>

<wsdl:service name=“DsoftwsService”>

<wsdl:port binding="impl:DsoftwsSoapBinding" name="Dsoftws">

     <wsdlsoap:address location="http://localhost:8080/Webservice/services/Dsoftws"/>

  </wsdl:port>

</wsdl:service>

</wsdl:definitions>

fico no aguardo Obrigado

4 Respostas

J

vc ta testando em um emulador ou direto em algum device?

J

android nao reconhece localhost
tenta alterar sua url
para o seu ip
http://“ip”:8080/…

se estiver usando emuladores o IP é sempre o mesmo
10.0.2.2

caso precise saber do ip da sua maquina
vá ao prompt de comando
digite ipconfig
e veja seu ip

J

ola caroa migo eu mudei e nada continua o mesmo erro
teria alguma outra ideia o que poderia ser ?

R

cara se por acaso a sua intenção é consumir algum dado de um banco de dados web, primeiramente nao se faz na mesma activity main, é necessario criar uma classe especifica com extensão da classe HttpServlet, chamar o req e resp, usar o tomcat e Json.
O Json serializa e desserializa os objetos, ou seja, comprimi em uma versao e descomprimi para outra, para transportar e consumir os arquivos.

MAS SE FOR ISSO MESMO O QUE ESTA PRETENDENDO FAZER.

Criado 11 de junho de 2012
Ultima resposta 29 de ago. de 2014
Respostas 4
Participantes 3