Xpage java代码与gmail api交互
使用DominoDesigner9.0.1FP3如何使用Gmail API 尝试了此链接中的示例Java代码,但运气不佳,如下所示: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
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中可用)。这是目前为止我的首选方法。我已经编写了一个可以帮助您的方法
/约翰
没有更多的编译错误。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中