Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Tomcat7打本地电话到Domino9_Java_Tomcat_Lotus Domino - Fatal编程技术网

Java 从Tomcat7打本地电话到Domino9

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

我一整天都在试图解决这个问题,但还没有找到解决办法

我想在Tomcat7上运行一个web应用程序,该应用程序对同一台机器上的Domino9服务器进行本地调用

我的出发点是:和它链接到的其他文章

服务器将Ubuntu 14.04作为操作系统。
我已经通过更改/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