Java 从会话中获取服务器名称
在服务器开发中驻留在数据库中的托管bean中,我有以下代码:Java 从会话中获取服务器名称,java,session,xpages,lotus-domino,xpinc,Java,Session,Xpages,Lotus Domino,Xpinc,在服务器开发中驻留在数据库中的托管bean中,我有以下代码: s = ExtLibUtil.getCurrentSession(); theMap.put("Server Name", s.getServerName()); 运行此操作后,当我查看地图时,会看到服务器名称,该值为空。在此之后,我获得了一个datbase RepID,然后尝试使用RepID打开数据库 appDB = s.getDbDirectory(null).openDatabaseByReplicaID(repID);
s = ExtLibUtil.getCurrentSession();
theMap.put("Server Name", s.getServerName());
运行此操作后,当我查看地图时,会看到服务器名称,该值为空。在此之后,我获得了一个datbase RepID,然后尝试使用RepID打开数据库
appDB = s.getDbDirectory(null).openDatabaseByReplicaID(repID);
if (appDB.isOpen()){
theMap.put(thisKey, repID);
}else{
theMap.put("DB " + thisKey, "Is Not Open");
}
如果我在本地有一个数据库的rep副本,它就会打开它;如果我删除了本地副本,打开就会失败。如果我将行更改为:
appDB = s.getDbDirectory("Development").openDatabaseByReplicaID(repID);
正确的appDB将打开。因此,会话似乎认为它正在本地运行,因为它为服务器名返回null。这真的很奇怪,我是不是错过了什么?目前,我刚刚在getDbDirectory中硬编码了服务器名称,但这在现实世界中不起作用。这是XPiNC吗?这将考虑数据库在本地运行,除非您已经将应用程序属性“服务器上运行的基于XPERS的XPERS”设置为 < P>这是XPNC吗?这将考虑数据库在本地运行,除非您已经将应用程序属性“服务器上运行的基于XPERS的XPERS”设置为 < P>这是XPNC吗?这将考虑数据库在本地运行,除非您已经将应用程序属性“服务器上运行的基于XPERS的XPERS”设置为 < P>这是XPNC吗?这将考虑数据库在本地运行,除非您已经将应用程序属性“服务器上运行的基于XPERS的XPERS”设置为“/P>”。有时看不见树林,就是这样。有时看不见树林,就是这样。有时看不见树林,就是这样。有时看不见森林,看不见树木。
String serverName = s.getEnvironmentString("ServerName", true);
or
String serverName = s.getEnvironmentString("ServerKeyFileName_Owner", true);