2014-11-20 1 views
0

저는 Android 개발의 초보자입니다. WCF 데이터 서비스를 통해 데이터를 검색하려고합니다. 이 서비스는 원자 및 json 형식의 데이터를 반환하도록 구성됩니다.Android 클라이언트에서 WCF 데이터 서비스 사용

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 

내 서비스에 뭔가 문제가 있다고 생각합니다. 내가 다른 닷 넷 클라이언트에서 동일한 서비스를 사용하고 잘 작동 문제로 해결할 수 없습니다.

도움이 될 것입니다.

감사합니다.

답변

0

NullPointerException을 해결하기 위해 응용 프로그램을 디버깅하는 것이 좋습니다.

그런데 OData 이전 버전을 사용하고 있습니다. 서버 측에서 OData V4를 사용하면 클라이언트 측에서 Java 클라이언트 용 Apache Olingo OData를 사용할 수 있습니다. http://olingo.apache.org/doc/odata4/download.html Olingo OData Client for Android 다운로드 (md5, sha512, pgp)