Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 DIIOP_IOR.TXT中的端口0,如何更改它?_Java_Lotus Notes_Lotus Domino_Iiop - Fatal编程技术网

Java DIIOP_IOR.TXT中的端口0,如何更改它?

Java DIIOP_IOR.TXT中的端口0,如何更改它?,java,lotus-notes,lotus-domino,iiop,Java,Lotus Notes,Lotus Domino,Iiop,我正在尝试使用独立的Java程序远程登录Domino。 我在类路径中有ncso.jar(和TrustedCerts.class) DIIOP任务生成DIIOP_IOR.TXT文件。如果我将文件内容直接复制到程序中,并尝试创建如下会话: String ior = "IOR:....." // 404 bytes Session session = NotesFactory.createSessionWithIOR(ior, "username", "password"); 结果是: org.om

我正在尝试使用独立的Java程序远程登录Domino。 我在类路径中有
ncso.jar
(和TrustedCerts.class)

DIIOP任务生成
DIIOP_IOR.TXT
文件。如果我将文件内容直接复制到程序中,并尝试创建如下会话:

String ior = "IOR:....." // 404 bytes
Session session = NotesFactory.createSessionWithIOR(ior, "username", "password");
结果是:

org.omg.CORBA.COMM_FAILURE: java.net.ConnectException: connect: Address is invalid on local machine, or port is not valid on remote machine Host: poseidon.heeros.com Port: 0  vmcid: 0x0  minor code: 1  completed: No
服务器名称有效,但端口0看起来很奇怪。我在尝试在线解码器,结果如下:

object key is <#048525651a-ec68-106c-eee0-007e2d2233b5#00LotusNOI#01#00#01>;
no trustworthy most-specific-type info; unrecognized ORB type;
reachable with IIOP 1.1 at host "poseidon.heeros.com", port 0

似乎正确的端口号是63148。它必须在服务器文档中的端口-->Internet端口-->DIIOP处指定为“TCP/IP端口号”


此外,在IIOP站点文档中,必须允许TCP身份验证。

根据我的经验,DIIOP根本不使用SSL/TLS。只有
DIIOP\u IOR.TXT
通过SSL/TLS下载。使用Wireshark或类似工具捕获网络流量,并监控:
端口63148或端口63149
@劳里·兰蒂:你能在你的环境中测试一下连接是否用wireshark加密吗

Wireshark Ourput:GIOP createSession,带有用户名和密码(用X隔开)

使用的Java代码:

_diiop_args = new String[]{"-ORBEnableSSLSecurity", "-HTTPEnableSSLSecurity"}; 
String ior = NotesFactory.getIOR(_diiop_host + ":" + _diiop_port, 
    _diiop_args, _user_name, _user_pass);
_session = NotesFactory.createSessionWithIOR(ior, _user_name, _user_pass);

您好@LauriLaanti您能帮我一个忙并测试一下您的diiop连接是否真的加密了吗?见下面我的答案。
0000   00 50 56 69 f5 2b 00 50 56 c0 00 02 08 00 45 00  .PVi.+.PV.....E.
0010   00 c0 0d 06 40 00 80 06 bb ca c0 a8 58 01 c0 a8  ....@.......X...
0020   58 15 d2 e0 f6 ac ef b6 47 e8 13 10 53 10 50 18  X.......G...S.P.
0030   01 00 29 bb 00 00 47 49 4f 50 01 00 00 00 00 00  ..)...GIOP......
0040   00 8c 00 00 00 00 00 00 00 05 01 00 00 00 00 00  ................
0050   00 31 04 38 35 32 35 36 35 31 61 2d 65 63 36 38  .1.8525651a-ec68
0060   2d 31 30 36 63 2d 65 65 65 30 2d 30 30 37 65 32  -106c-eee0-007e2
0070   64 32 32 33 33 62 35 00 4c 6f 74 75 73 4e 4f 49  d2233b5.LotusNOI
0080   01 00 01 00 00 00 00 00 00 0e 63 72 65 61 74 65  ..........create
0090   53 65 73 73 69 6f 6e 00 00 00 00 00 00 00 00 00  Session.........
00a0   00 01 00 00 00 00 00 00 00 01 00 00 00 0f 00 00  ................
00b0   00 06 00 61 00 64 00 6d 00 69 00 6e 00 00 00 00  ...a.d.m.i.n....
00c0   00 06 00 XX XX XX XX XX XX XX XX XX XX 00        ...XXXXXXXXXX.
_diiop_args = new String[]{"-ORBEnableSSLSecurity", "-HTTPEnableSSLSecurity"}; 
String ior = NotesFactory.getIOR(_diiop_host + ":" + _diiop_port, 
    _diiop_args, _user_name, _user_pass);
_session = NotesFactory.createSessionWithIOR(ior, _user_name, _user_pass);