2016-03-02 78 views
3

我想知道是否能够在运行在服务器A上的代理中打开服务器连接,以访问服务器B的notes.ini。我想读取该notes.ini中的参数。这可能通过编码? 我知道session.getEnvironment方法,但它们访问运行代理的服务器(或Notes客户机)的notes.ini。 任何想法?我可以从其他服务器读取notes.ini参数吗?

使用的解决方案,从叶戈尔:

/** 
* checks for notes.ini value for 
* @return 
* @throws NotesException 
*/ 
private boolean checkNoSessionInfo(String serverName) { 
    boolean result = false; 
    try { 
     String console = session.sendConsoleCommand(serverName, "show config *"); 
     result = console.contains("LOG_DISABLE_SESSION_INFO=1"); 
    } catch (NotesException e) { 
     oli.logErrorEx(e, "Could not check if server's user session info was disabled", OpenLogItem.SEVERITY_MEDIUM, null); 
    } 
    return result; 
} 

就像一个魅力! :-)

谢谢大家!

回答

4

尝试将服务器A添加到names.nsf中的服务器B服务器文档的受信任服务器(可能还有安全选项卡上的其他几个字段)。在我刚刚使用Session.sendConsoleCommand方法之后(使用命令“show config *”)。参见文档以供参考:https://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.main.doc/H_SENDCONSOLECOMMAND_METHOD_SESSION_JAVA.html

+0

是的,这是有效的。如果你想获得Notes \ Data文件夹,你可以调用Session.sendConsoleCommand(“Server1/ACME”,“show config Directory”) ' – Brlja

+0

是的,确认 - 很好,我更新了我的问题并添加我的解决方案。 –

+0

FWIW,我不认为你真的需要Trusted Servers的权限。我认为唯一需要该权限的情况是ServerA上的代理需要访问ServerB上的数据库 - 在这种情况下,ServerB的服务器文档必须在“受信任的服务器”字段中列出ServerA。 –

0

有几个问题与此:

  1. 需要用服务器B的服务器A,这是不可能一个NotesSession对象。
  2. 可惜你不能执行从服务器的服务器B剂,它只是不工作: 02.03.2016 10:51:05 Agent 'TestRunAgent' error: Cannot access foreign servers when running on a server)
  3. 你最好的选择是从服务器A中的HTTP调用到服务器B,这样,服务器B剂可以返回具有所需属性的HTML。

您可以使用print关键字返回简单的HTML正文,它可以方便地打印到HTTP响应。

+0

是的,发现它也会检查! –

+0

Java代理可以打开远程会话对象(通过DIIOP)并在远程上下文中运行代码服务器,但是需要在远程服务器上设置DIIOP –

0

理论上,我认为应该可以通过调用Web服务,自定义REST servlet或XAgent在服务器B上。这将返回您需要的信息。

+0

这不是一个Web应用程序,也没有HTTP运行 - 将尝试sendConsoleCommand方法 –

+1

也许代理不能使用例如HTTP协议创建HTTP会话。如果HTTP没有在服务器A上运行,则使用ApacheHTTPClient类。如果HTTP不在服务器B上运行,那肯定没有帮助。 –

相关问题