2013-08-28 3 views
3

Это мой код:Я использую OData4j для Android, я не могу получить сущности

package com.example.toggleDemo; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import org.odata4j.consumer.ODataConsumer; 
import org.odata4j.core.OEntity; 
import org.odata4j.jersey.consumer.ODataJerseyConsumer; 
import java.util.List; 
import java.util.ArrayList; 

public class MainActivity extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, GetExpenseReports())); 
     getListView().setTextFilterEnabled(true); 
    } 

    ArrayList<String> GetExpenseReports() 
    { 
     ArrayList<String> listUI = new ArrayList<String>(); 
     ODataConsumer c = ODataJerseyConsumer.create("http://services.odata.org/Northwind/Northwind.svc/"); 
     List<OEntity> listCategories= (List<OEntity>) c.getEntities("Categories"); 
     for(OEntity category : listCategories) { 
      listUI.add(String.format("%s-%s", category.getProperty("CategoryID").getValue().toString(), category.getProperty("CategoryName").getValue().toString())); 
     } 
     return listUI; 
    } 
} 

При запуске в эмуляторе, это ошибка: 08-28 17: 30: 05,793: ERROR/AndroidRuntime (781): неустранимый: Основной java.lang.NoClassDefFoundError: javax.ws.rs.ext.RuntimeDelegate на org.odata4j.jersey.consumer.ODataJerseyConsumer (ODataJerseyConsumer.java:22) на org.odata4j. .jersey.consumer.ODataJerseyConsumer. (ODataJerseyConsumer.java:14) на org.odata4j.jersey.consumer.ODataJerseyConsumer $ Builder.build (ODataJerseyConsumer.java:93) на org.odata4j.jersey.consumer.ODataJerseyConsumer.create (ODataJerseyConsumer.java:115) на com.example.toggleDemo.MainActivity.GetExpenseReports (MainActivity.java:38) на com.example.toggleDemo.MainActivity.onCreate (MainActivity.java:22) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2627) в android.app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2679) at android.app.ActivityThread.access $ 2300 (ActivityThread.java:125) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) на android.os.Handler.dispatchMessage (обработчик .java: 99) at android.os.Looper.l oop (Looper.java:123) at android.app.ActivityThread.main (ActivityThread.java:4627) по адресу java.lang.reflect.Method.invokeNative (собственный метод) по адресу java.lang.reflect.Method.invoke (Method.java:521) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) на dalvik.system.NativeStart.main (родной метод)

Заранее спасибо!

+0

и я не могу использовать ODataConsumer.create (..) и я не могу использовать код: Список listCategories = c.getEntities ("Категории") Execute() ToList();.. Сообщение об ошибке «Не удается разрешить метод« toList() ». Но я вижу демонстрационный код OData4j, который использует« toList() », Почему я не могу использовать? – bnPYSse

+0

Хотя трассировка, найденная в findEdmEntitySet() из EdmDataServices.java, я не могу получить this.schemas.The this.schemas имеет значение null. – bnPYSse

ответ

0

попробуйте это сработало для меня ArrayList listUI = new ArrayList(); ODataConsumer c = ODataJerseyConsumer.create ("http://services.odata.org/Northwind/Northwind.svc/"); OQueryRequest catagories = c.getEntities («Категории»);

Enumerable<OEntity> enumCatagory = catagories.execute(); 
    OEntity category = enumCatagory.first(); 
    System.out.println(enumCatagory.count()); 
    String str = String.format("%s-%s", category.getProperty("CategoryID").getValue().toString(), category.getProperty("CategoryName").getValue().toString()); 
    System.out.println(str); 

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

  • Нет связанных вопросов^_^