2012-02-13 3 views
-3

У меня возникла проблема при вызове веб-службы Java из приложения Android с помощью ksoap2. Мой класс веб-службы имеет частную переменную, и я использовал getters & сеттеры для обновления этой переменной. Я хочу получить ценность для приложения Android с помощью метода get. Как я могу это сделать? Пожалуйста, помогите мне! Я новичок в программировании.Доступ к веб-сервису java на Android

Мой класс веб-службы:

public class Customer { 
    private String customerName; 

    public String getCustomerName() { 
     return customerName; 
    } 

    public void setCustomerName(String customerName) { 
     this.customerName = customerName; 
    } 

Я использовал демо-класс, чтобы установить значение имени клиента. но при запуске приложения с использованием эмулятора он не дает значения, которое должно быть. Это показывает только сообщения об открытии по умолчанию

package com.testversiontwo.ws; 

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

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

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

public class TestVTwoClientActivity extends Activity { 
    private static final String SOAP_ACTION = "http://ws.customer.com"; 
    private static final String METHOD_NAME = "getCustomerName"; 
    private static final String NAMESPACE = "http://ws.customer.com/getCustomerName/"; 
    private static final String URL = "http://175.157.141.120:8085/TestVTwo/services/Customer?wsdl"; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   

     SoapSerializationEnvelope envelope = new  SoapSerializationEnvelope(SoapEnvelope.VER11); 

     envelope.setOutputSoapObject(request); 

     HttpTransportSE ht = new HttpTransportSE(URL); 
     try { 
      ht.call(SOAP_ACTION, envelope); 
      SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
      Log.i("myApp", response.toString()); 

      TextView tv = new TextView(this); 
      tv.setText("Message :"+response); 
      setContentView(tv); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

Прежде чем мы сможем помочь вам взглянуть на часто задаваемые вопросы. Вы должны предоставить больше контекста. Совершенно непонятно, какова ваша проблема. Пожалуйста, разместите некоторый код (соответствующие части) и/или некоторые следы стека исключений. – home

+0

blah blah blah - что вы сделали, разместите свой код - blah blah blah – KevinDTimm

+0

также укажите ваш формат запроса и ответа. Поскольку некоторые форматы запросов и ответов не поддерживаются ksoap. –

ответ

0

Я думаю, что ваш URL должен быть:

private static final String URL = "http://175.157.141.120:8085/TestVTwo/services/Customer"; 
+0

Нет, не работает. по-прежнему имеют одинаковую проблему. – Grant

+0

Может ли кто-нибудь помочь мне ??? .... это убило весь мой день ... – Grant

0

Хорошо, я понял, что getCustomerName возвращает строку, так что вы должны сделать:

SoapObject response = (SoapObject)envelope.getResponse(); 
TextView tv = new TextView(this); 
tv.setText("Message :" + response.toString()); 
setContentView(tv); 

Если есть ошибки, отправьте трассировку стека исключений.

+0

Нет, это не дает никакого исключения. Но приложение для Android не показывает значение, заданное классом demo java. Он показывает только приветствие по умолчанию по умолчанию. Я попытался преобразовать значение ответа в строку, но это также не решает проблему ..... Я думаю, что проблема в методе набора не корректно обновляет переменную. Когда я использую приватную переменную как это «private String name =« Sean »; клиент android показывает правильное значение. Я хочу знать, как правильно обновить личную ценность на сервере. Thanx все вы тратите свое время на мой вопрос. – Grant

0

OK !! Я решил эту проблему, используя базу данных MySQL &, создающую клиент Android для доступа к этой базе данных MySQL !!!

Смежные вопросы