2014-11-20 2 views
0

Я начинаю разработку Android. Я пытаюсь получить данные через службу данных WCF. Служба настроена на возврат данных в формате atom и json.Потребляйте службу данных WCF в Android-клиенте

Я использую библиотеку odata4j. Мой код ниже ...

public class Welcome extends Activity { 

Button call; 
ListView list; 
ArrayList categories; 
ArrayAdapter adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_welcome); 

    setTitle("WCF Example"); 
    call = (Button) findViewById (R.id.mybtn); 
    list = (ListView) findViewById(R.id.mylistview); 
    categories = new ArrayList(); 
    call.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 

      new callService().execute(); 
     } 
    }); 
} 
public class callService extends AsyncTask<Void, Void, ArrayList<String>> { 
    @Override 
    protected ArrayList<String> doInBackground(Void... params) { 

    ODataConsumer c =     ODataJerseyConsumer.create("http://217.37.219.177:82/EbosDataService.svc"); 
     List<OEntity> listEntities = c.getEntities("driver_details").execute().toList(); 
     System.out.println("Size"+ listEntities.size()); 
     if (listEntities.size() > 0) { 
      for (OEntity entity : listEntities) { 
       categories.add(entity.getProperty("DriverID").getValue().toString() 
         + " - " 
         + entity.getProperty("DriverFirstName").getValue()); 
      } 
     } 
     return categories; 
    } 
    @Override 
    protected void onPostExecute(ArrayList<String> result) {    
     super.onPostExecute(result); 
     adapter = new ArrayAdapter<String>(Welcome.this, 
       android.R.layout.simple_list_item_1, result); 
     list.setAdapter(adapter); 
    } 
} 
} 

При запуске приложение перестает отвечать на запросы. Пожалуйста, смотрите журнал

http://217.37.219.177:85/errorlog.txt 

Однако, когда я достигаю http://services.odata.org/Northwind/Northwind.svc мой код работает. См. Журнал

http://217.37.219.177:85/successlog.txt 

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

Любая помощь будет очень признательна.

Спасибо.

ответ

0

Я предлагаю вам отладить приложение, чтобы решить NullPointerException.

Кстати, вы используете более раннюю версию OData. если вы используете OData V4 на стороне сервера, то на стороне клиента вы можете использовать Apache Olingo OData для Java Client @http://olingo.apache.org/doc/odata4/download.html Olingo OData Client для Android Загрузить (md5, sha512, pgp)

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