Java 从Tomcat7打本地电话到Domino9
我一整天都在试图解决这个问题,但还没有找到解决办法 我想在Tomcat7上运行一个web应用程序,该应用程序对同一台机器上的Domino9服务器进行本地调用 我的出发点是:和它链接到的其他文章 服务器将Ubuntu 14.04作为操作系统。Java 从Tomcat7打本地电话到Domino9,java,tomcat,lotus-domino,Java,Tomcat,Lotus Domino,我一整天都在试图解决这个问题,但还没有找到解决办法 我想在Tomcat7上运行一个web应用程序,该应用程序对同一台机器上的Domino9服务器进行本地调用 我的出发点是:和它链接到的其他文章 服务器将Ubuntu 14.04作为操作系统。 我已经通过更改/etc/default/tomcat7解决了所有绑定错误 JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.library.path=/op
我已经通过更改/etc/default/tomcat7解决了所有绑定错误
JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.library.path=/opt/ibm/lotus/notes/latest/linux"
#NOTES_DATA_DIR=/srvmuc202_data
PATH=$PATH:/opt/ibm/lotus/notes/latest/linux:/srvmuc202_data
LD_LIBRARY_PATH=/opt/ibm/lotus/notes/latest/linux
#CLASSPATH=$CLASSPATH:/opt/ibm/lotus/notes/latest/linux/jvm/lib/ext/Notes.jar
JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.library.path=/opt/ibm/domino/notes/latest/linux"
PATH=$PATH:/opt/ibm/lotus/notes/latest/linux:/local/notesdata
LD_LIBRARY_PATH=/opt/ibm/domino/notes/latest/linux
notes.ini位于数据目录中。我找到的访问它的唯一方法是将它添加到路径
我无法正确更改类路径。这就是为什么评论它。如果激活,Tomcat将忽略此设置。编辑:我通过将Notes.jar添加到我的WAR文件中解决了这个问题。
我现在使用已安装的Notes.jar。它之所以有效,是因为我在Tomcat lib目录
/usr/share/tomcat7/lib
以下是我的测试代码:
NotesThread.sinitThread();
Session session = null;
Database db = null;
try {
session = NotesFactory.createSession();
if (session != null) {
log.debug("Session available");
log.debug("Servername: {}", session.getServerName());
log.debug("Effective user name: {}", session.getEffectiveUserName());
log.debug("User name: {}", session.getUserName());
log.debug("Common user name: {}", session.getCommonUserName());
log.debug("Notes version: {}", session.getNotesVersion());
db = session.getDatabase("", "mbur/mburchard.nsf", false);
if (db != null && db.isOpen()) {
log.debug("Got database: {}", db.getTitle());
}
}
} catch (NotesException e) {
log.error("", e);
} finally {
recycle(db);
recycle(session);
}
NotesThread.stermThread();
没有将数据目录添加到路径,我的应用程序可以工作,但无法访问任何内容。然后输出为:
[23606:00002-965273344] Error writing to process file pid.nbf, (other applications may be inappropriately accessing this file)
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - Session available
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - Servername:
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - Effective user name:
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - User name:
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - Common user name:
15:43:45.859 [http-bio-7080-exec-1] DEBUG de.mbur.billing.impl.TestNotes - Notes version: Release 9.0.1FP2HF385 | November 4, 2014
我认为,这是因为它不知道notes.ini或Domino服务器id文件
编辑我将Tomcat添加到Domino服务器组,现在err 258消失了。
现在,它的行为与不知道notes.ini的情况相同。
没有有效的用户名,无法访问任何内容 当数据目录位于路径中时,我收到一条错误消息: 我非常感谢任何帮助,让Tomcat7以正确的方式运行Domino9访问。
理想情况下,WAR文件中没有adidng Notes.jar,并以完全的服务器权限运行。休息后,我有时间测试并解决此问题 这是一个非常小的细节。Domino组的写入权限 我想借此机会写一本完整的指南 如何在同一台机器上从Tomcat访问Domino Tomcat(或运行Java代码的任何其他程序)应该在Domino组中,该组通常命名为notes
确保此Domino组对notes数据目录中的所有内容都具有读写权限 更改Tomcat配置(在Ubuntu 14.04下,可从/etc/default/tomcat7获得) 通过切换到目录/usr/share/tomcat7/lib并创建符号链接,链接到Notes.jar
sudo ln -s /opt/ibm/domino/notes/latest/linux/jvm/lib/ext/Notes.jar
将您的WAR文件部署到Tomcat并高兴地说:)如果您想使用DIIOP,您需要使用ncso.jar而不是notes.jar。这两个JAR具有相同接口的不同实现。jar中的类用于通过DIIOP远程访问Domino服务器。有关查找ncso.jar的信息,请参阅此链接:但是如果它是真正本地的,并且Domino和Tomcat在同一台机器上运行,那么使用notes.jar肯定很有意义。它是真正本地的,这就是我使用notes.jar的原因。这里解释了何时使用Notes和NCSO:两者都称为DIIOP…@Nabor,我同意使用Notes.jar是有意义的。在这种情况下,DIIOP不参与。也许你应该重申一下这个问题。对不起,我没有答案给你。我需要尝试类似的设置,但我根本没有时间。顺便说一句,我有点希望在Domino服务器未运行时得到相同的结果。在您的设置中,Tomcat进程中的Notes代码实际上不需要运行Domino服务器。它应该作为Domino服务器ID运行。我无法想象为什么它不工作。
sudo ln -s /opt/ibm/domino/notes/latest/linux/jvm/lib/ext/Notes.jar