Google이 제공하는 Calendar API를 이용하는데, 자바에서는 잘 되던것이

안드로이드에서는 getFeed 메소드가 일절 먹히질 않습니다.

getFeed 메소드를 호출하자마자 ServiceException을 내뱉어버리네요....


해당 메세지는 DDMS의 로그캣입니다...

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

04-07 21:41:44.530: WARN/XmlParser(10914): javax.xml.parsers.ParserConfigurationException: org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/external-parameter-entities
04-07 21:41:44.530: WARN/XmlParser(10914): javax.xml.parsers.ParserConfigurationException: org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/external-parameter-entities
04-07 21:41:44.530: WARN/XmlParser(10914):     at org.apache.harmony.xml.parsers.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:84)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.util.XmlParser.parse(XmlParser.java:682)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.util.XmlParser.parse(XmlParser.java:576)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.Service.getFeed(Service.java:1136)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.Service.getFeed(Service.java:998)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:638)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.google.gdata.client.Service.getFeed(Service.java:1017)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.kookmin.cs.meeting.GetFeedAsking$2.onClick(GetFeedAsking.java:86)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.View.performClick(View.java:2408)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.View.onKeyUp(View.java:4121)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.widget.TextView.onKeyUp(TextView.java:4401)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.KeyEvent.dispatch(KeyEvent.java:1062)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.View.dispatchKeyEvent(View.java:3740)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1705)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1105)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.app.Activity.dispatchKeyEvent(Activity.java:2085)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1681)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.os.Looper.loop(Looper.java:123)
04-07 21:41:44.530: WARN/XmlParser(10914):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-07 21:41:44.530: WARN/XmlParser(10914):     at java.lang.reflect.Method.invokeNative(Native Method)
04-07 21:41:44.530: WARN/XmlParser(10914):     at java.lang.reflect.Method.invoke(Method.java:521)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
04-07 21:41:44.530: WARN/XmlParser(10914):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-07 21:41:44.530: WARN/XmlParser(10914):     at dalvik.system.NativeStart.main(Native Method)
04-07 21:41:44.537: WARN/System.err(10914): com.google.gdata.util.ParseException: org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/external-parameter-entities
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.util.XmlParser.parse(XmlParser.java:708)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.util.XmlParser.parse(XmlParser.java:576)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
04-07 21:41:44.537: WARN/System.err(10914):     at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
04-07 21:41:44.584: DEBUG/dalvikvm(10914): GC_FOR_MALLOC freed 5054 objects / 398032 bytes in 47ms
04-07 21:41:44.584: WARN/System.err(10914):     at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
04-07 21:41:44.584: WARN/System.err(10914):     at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
04-07 21:41:44.584: WARN/System.err(10914):     at com.google.gdata.client.Service.getFeed(Service.java:1136)
04-07 21:41:44.592: WARN/System.err(10914):     at com.google.gdata.client.Service.getFeed(Service.java:998)
04-07 21:41:44.592: WARN/System.err(10914):     at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:638)
04-07 21:41:44.592: WARN/System.err(10914):     at com.google.gdata.client.Service.getFeed(Service.java:1017)
04-07 21:41:44.592: WARN/System.err(10914):     at com.kookmin.cs.meeting.GetFeedAsking$2.onClick(GetFeedAsking.java:86)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.View.performClick(View.java:2408)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.View.onKeyUp(View.java:4121)
04-07 21:41:44.592: WARN/System.err(10914):     at android.widget.TextView.onKeyUp(TextView.java:4401)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.KeyEvent.dispatch(KeyEvent.java:1062)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.View.dispatchKeyEvent(View.java:3740)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.592: WARN/System.err(10914):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
04-07 21:41:44.592: WARN/System.err(10914):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1705)
04-07 21:41:44.600: WARN/System.err(10914):     at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1105)
04-07 21:41:44.600: WARN/System.err(10914):     at android.app.Activity.dispatchKeyEvent(Activity.java:2085)
04-07 21:41:44.600: WARN/System.err(10914):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1681)
04-07 21:41:44.600: WARN/System.err(10914):     at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
04-07 21:41:44.600: WARN/System.err(10914):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
04-07 21:41:44.600: WARN/System.err(10914):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
04-07 21:41:44.600: WARN/System.err(10914):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-07 21:41:44.600: WARN/System.err(10914):     at android.os.Looper.loop(Looper.java:123)
04-07 21:41:44.600: WARN/System.err(10914):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-07 21:41:44.600: WARN/System.err(10914):     at java.lang.reflect.Method.invokeNative(Native Method)
04-07 21:41:44.600: WARN/System.err(10914):     at java.lang.reflect.Method.invoke(Method.java:521)
04-07 21:41:44.600: WARN/System.err(10914):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
04-07 21:41:44.600: WARN/System.err(10914):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-07 21:41:44.600: WARN/System.err(10914):     at dalvik.system.NativeStart.main(Native Method)
04-07 21:41:44.600: WARN/System.err(10914): Caused by: javax.xml.parsers.ParserConfigurationException: org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/external-parameter-entities
04-07 21:41:44.608: WARN/System.err(10914):     at org.apache.harmony.xml.parsers.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:84)
04-07 21:41:44.608: WARN/System.err(10914):     at com.google.gdata.util.XmlParser.parse(XmlParser.java:682)
04-07 21:41:44.608: WARN/System.err(10914):     ... 39 more

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



잘보면 getFeed 메소드를 호출하는데서부터 익셉션이 일어나더군요...

해결방법을 찾고 싶습니다...ㅜㅜ



사용한 GData 라이브러리로는

gdata-base-1.0.jar
gdata-calenar-2.0.jar
gdata-client-1.0.ja
gdata-core-1.0.jr
google-collect-1.0-rc1.jar

입니다.




액팁티 관련 소스코드는 다음과 같습니다.
CalendarService 객체를 생성하여 SetUserCredential 메소드를 통하여 인증을 받고,

인증받은 Google 계정을 가지고 캘린더에 있는 정보를 뽑아오기 위해 getFeed 메소드를 호출하면서부터 익셉션이 발동됩니다.

며칠을 고생해도 해결책이 보이지 않는군요...ㅜㅜㅜㅜㅜㅜ

고수님들 부탁드립니다 ㅜㅜ





package com.kookmin.cs.meeting;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.calendar.CalendarEntry;
import com.google.gdata.data.calendar.CalendarFeed;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

public class GetFeedAsking extends Activity {
 
 private Button publicCalendarSearch;
 private Button loginButton;
 
 
 private CalendarService myservice;
 
 private URL metafeedUrl;
 private URL owncalendarsUrl;
 private URL allalendarsUrl;
 
 
 private CalendarFeed resultFeed;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        publicCalendarSearch = (Button) findViewById(R.id.publicCalendarSearch);
        loginButton = (Button) findViewById(R.id.loginBtn);
       
       
       
        try {
   metafeedUrl = new URL(https://www.google.com/calendar/feeds/구글아이디);
   owncalendarsUrl = new URL("https://www.google.com/calendar/feeds/구글아이디/owncalendars/full");
         allalendarsUrl = new URL("https://www.google.com/calendar/feeds/구글아이디/allcalendars/full");
  } catch (MalformedURLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
       
       
       
       
       
       
       
       
       
       
       
       
        loginButton.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    myservice = new CalendarService("Hello");
    try {
     myservice.setUserCredentials("구글아이디", "패스워드");
    } catch (AuthenticationException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
       
       
        publicCalendarSearch.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    try {
     resultFeed = myservice.getFeed(owncalendarsUrl, CalendarFeed.class);
         
     for (int i = 0; i < resultFeed.getEntries().size(); i++) {
      CalendarEntry entry = resultFeed.getEntries().get(i);
      System.out.println("\t" + entry.getTitle().getPlainText());
      System.out.println(entry.getAccessLevel());
      
     }
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (ServiceException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    
    
   }
  });
       
       
    }
}