Xpage java代码与gmail api交互

Xpage java代码与gmail api交互,java,xpages,gmail-api,Java,Xpages,Gmail Api,使用DominoDesigner9.0.1FP3如何使用Gmail API 尝试了此链接中的示例Java代码,但运气不佳,如下所示: 导入必要的gmail api.jar最新版本 已安装的jre为8,并为jre 8路径设置生成路径 Complier JRE版本仍然与默认的1.5版本相同 任何帮助都将不胜感激 这是与gmail api交互的java代理: import java.io.IOException; import java.io.InputStream; import java.io.I

使用DominoDesigner9.0.1FP3如何使用Gmail API

尝试了此链接中的示例Java代码,但运气不佳,如下所示:

  • 导入必要的gmail api.jar最新版本
  • 已安装的jre为8,并为jre 8路径设置生成路径
  • Complier JRE版本仍然与默认的1.5版本相同
  • 任何帮助都将不胜感激

    这是与gmail api交互的java代理:

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.List;
    
    import lotus.domino.*;
    
    import com.google.api.client.auth.oauth2.Credential;
    import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
    import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.HttpTransport;
    import com.google.api.client.json.jackson2.JacksonFactory;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    //import com.google.api.*;
    /***/The following lines has error "import can not be resolved". I've imported jar and their sources from gmail .jar file zip***
    import com.google.api.services.gmail.*;
    import com.google.api.services.gmail.GmailScopes;
    import com.google.api.services.gmail.model.*;
    import com.google.api.services.gmail.Gmail;
    
    
    
    
    
    public class JavaAgent extends AgentBase {
    
    
        public void NotesMain() {
             /** Application name. */
            final String APPLICATION_NAME =
                "Gmail API Java Quickstart";
            /** Directory to store user credentials for this application. */
            final java.io.File DATA_STORE_DIR = new java.io.File(
                System.getProperty("user.home"), ".credentials/gmail-java-quickstart");
    
            FileDataStoreFactory DATA_STORE_FACTORY;
    
            /** Global instance of the JSON factory. */
            final JsonFactory JSON_FACTORY =
                JacksonFactory.getDefaultInstance();
    
            HttpTransport HTTP_TRANSPORT;
    
            /* Global instance of the scopes required by this quickstart. */
            final List<String> SCOPES =
             //   Arrays.asList(com.google.api.services.gmail.GmailScopes.)//.GMAIL_LABELS);
    Arrays.asList(com.google.api.)
    
            try {
              Session session = getSession();
              AgentContext agentContext = session.getAgentContext();
    
              // (Your code goes here)
    
          } catch(Exception e) {
              e.printStackTrace();
           }
       }
    
    import java.io.IOException;
    导入java.io.InputStream;
    导入java.io.InputStreamReader;
    导入java.util.array;
    导入java.util.List;
    导入lotus.domino.*;
    导入com.google.api.client.auth.oauth2.Credential;
    导入com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    导入com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    导入com.google.api.client.googleapis.auth.oauth2.googleaauthorizationcodeflow;
    导入com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    导入com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    导入com.google.api.client.http.HttpTransport;
    导入com.google.api.client.json.jackson2.JacksonFactory;
    导入com.google.api.client.json.JsonFactory;
    导入com.google.api.client.util.store.FileDataStoreFactory;
    //导入com.google.api.*;
    /***/以下行出现错误“无法解析导入”。我已经从gmail.jar文件zip导入了jar及其源代码***
    导入com.google.api.services.gmail.*;
    导入com.google.api.services.gmail.GmailScopes;
    导入com.google.api.services.gmail.model.*;
    导入com.google.api.services.gmail.gmail;
    公共类JavaAgent扩展了AgentBase{
    公共无效注释main(){
    /**应用程序名称*/
    最终字符串应用程序名称=
    “Gmail API Java快速启动”;
    /**用于存储此应用程序的用户凭据的目录*/
    final java.io.File DATA_STORE_DIR=new java.io.File(
    System.getProperty(“user.home”),“.credentials/gmail java quickstart”);
    文件数据存储工厂数据存储工厂;
    /**JSON工厂的全局实例*/
    最终JsonFactory JSON_工厂=
    JacksonFactory.getDefaultInstance();
    HttpTransport-HTTP_传输;
    /*此快速启动所需作用域的全局实例*/
    最终列表范围=
    //Arrays.asList(com.google.api.services.gmail.GmailScopes.)/.gmail_标签);
    Arrays.asList(com.google.api.)
    试一试{
    Session=getSession();
    AgentContext AgentContext=session.getAgentContext();
    //(您的代码在这里)
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    
    好的,您需要确保API能够在Java 1.6上实际运行

    您可以通过以下几种方式将jar添加到Domino中:

    1.在JVM ext/lib目录中

    这很好——维护起来很痛苦,因为所有的事情都需要在文件系统中完成(也需要在Domino Designer中完成)。这适用于XPages和代理

    2.将jar连接到代理/脚本库

    这只适用于在代理(或Web服务)中运行的代码。但是,每次调用代码(并且jar在内部分离)时都会发生内存泄漏。所以不要使用这个

    3.将jar添加为jar设计元素

    虽然我没有太多的经验,但这也应该有效。我担心与上述元素存在相同的问题,但没有证据表明这一点。因此,您可能可以使用它,它只适用于XPages

    4.将jar作为插件添加

    您可以将jar封装到OSGi插件中,并在服务器范围内部署它(上面的2和3只允许jar在NSF中可用)。这是目前为止我的首选方法。我已经编写了一个可以帮助您的方法

    /约翰

  • 已安装jdk1.7.079
  • 在项目属性->Java构建路径中将其设置为JRE系统库(jdk1.7.079)

  • 没有更多的编译错误。

    Domino9.0.1使用Java 1.6。您使用的是XPages还是Java代理?请添加更多详细信息,包括显示您尝试过的代码。我正在使用Java代理与gmail api交互。添加的代码来自本文,了解如何使用Java 1.6运行Java代理的信息:您不能。Domino使用Java1.6同样,如果在NSF中安装jar,如果出现NoClassDefFoundError,请尝试更改安全设置以允许java.policy中的所有权限。如果这解决了问题,选项4就是解决方法。Domino的java安全性是从Websphere复制的,不会像应该的那样委托给Domino服务器。java 8将进入Domino在下一个版本中,可能是明年初。最近发布的Mac安装已经包含一些Java 8文件,这证明了IBM正在查找这些文件。确切地说,您将遇到权限问题。如果使用选项4,您可以解决此问题-请参阅:-)我没有任何权限错误。大多数错误与中的类和方法相关.gmail api,例如“CalendarSample无法解析为类型”…以及您是如何添加应用程序要使用的jar的?使用代理的存档功能添加的.jar意味着将.jar文件作为存档导入代理it中