使用eclipse插件导入谷歌日历api问题

时间:2011-08-03 01:25:18

标签: java eclipse api plugins calendar

我使用google提供的eclipse插件将google calendar api jars导入到我当前的项目中。

这是我如何做到的http://code.google.com/eclipse/docs/googleapis.html

这就是我要做的事情

http://code.google.com/apis/calendar/data/2.0/developers_guide_java.html

我在编译时遇到错误。编码时我没有错误或警告

错误

Compiling module com.shuttle.reservation.ShuttleWebsite
   Validating newly compiled units
      [ERROR] Errors in 'file:/C:/Users/user1/Desktop/Dropbox/All/Everything%20Programming/workspace/ShuttleWebsite/src/com/shuttle/reservation/client/ShuttleWebsite.java'
         [ERROR] Line 129: No source code is available for type com.google.gdata.client.calendar.CalendarService; did you forget to inherit a required module?
         [ERROR] Line 134: No source code is available for type java.net.URL; did you forget to inherit a required module?
         [ERROR] Line 135: No source code is available for type com.google.gdata.data.calendar.CalendarFeed; did you forget to inherit a required module?
         [ERROR] Line 142: No source code is available for type com.google.gdata.data.calendar.CalendarEntry; did you forget to inherit a required module?
         [ERROR] Line 146: No source code is available for type com.google.gdata.util.AuthenticationException; did you forget to inherit a required module?
         [ERROR] Line 149: No source code is available for type java.net.MalformedURLException; did you forget to inherit a required module?
         [ERROR] Line 155: No source code is available for type com.google.gdata.util.ServiceException; did you forget to inherit a required module?
   Finding entry point classes
      [ERROR] Unable to find type 'com.shuttle.reservation.client.ShuttleWebsite'
         [ERROR] Hint: Previous compiler errors may have made this type unavailable
         [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

来自控制台窗口的一些额外错误

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
    at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:118)
    at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:100)
    at com.google.gdata.client.Service.<clinit>(Service.java:555)
    at AppsProvisioning.main(AppsProvisioning.java:37)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more

这是代码,我不知道该怎么做。我用googles eclipse插件设置我的项目我不知道为什么它不起作用。你能帮帮我吗

import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.acl.*;
import com.google.gdata.data.calendar.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;

import java.net.*;
import java.io.*;

.
.
.
.
//------------  Calendar Service  ---------------------------------------------
         CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");

         try {
            myService.setUserCredentials("jo@gmail.com", "mypassword");

             URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
             CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

             textBox.setText("Your calendars");
             //System.out.println("Your calendars:");
             //System.out.println();

             for (int i = 0; i < resultFeed.getEntries().size(); i++) {
                 CalendarEntry entry = resultFeed.getEntries().get(i);
                 //System.out.println("\t" + entry.getTitle().getPlainText());
                 textBox_1.setText(entry.getTitle().getPlainText());
             }
        } catch (AuthenticationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

.
.
.

1 个答案:

答案 0 :(得分:0)

你没有把范围弄好。 GWT无法将所有Java类导入客户端代码。像CalendarService或其他Calendar API类这样的东西应该写在服务器端,而不是客户端。

请仔细阅读本教程,我认为您应该将服务器和客户端代码混合在一起。