gpt4 book ai didi

java - 为什么 RvdProxy.getServices() 会错误地返回一个空数组?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:02 25 4
gpt4 key购买 nike

以下代码片段尝试创建连接到特定 rvd 的 Tib DaemonManager,然后查询该 rvd 的服务。

public static void main(String[] args) throws RuntimeException {
DaemonManager daemonManager = new DaemonManager("http://foo.com:7580");
if(daemonManager.getDaemonType() == DaemonManager.RVD) {
DaemonProxy daemonProxy = daemonManager.getDaemonProxy();
final RvdProxy rvdProxy = (RvdProxy) daemonProxy;
Service[] services = rvdProxy.getServices();
System.out.println(services.length); //prints 0
for (Service service : services) {
System.out.println(service.getNetwork());
}
}
}

这会打印零,即使此 rvd 的 Web 界面列出了多个可用服务。 为什么会发生这种情况?

我正在连接的守护进程正在运行该软件的 v 7.5.1,而我正在使用的 rvconfig.jar 也来自 v 7.5.1。

使用 Tibco 的 DaemonManager 时是否有问题导致我出现问题?

最佳答案

我用了Wireshark查看在我的 RvdProxy 和 RVD 本身之间发送的流量,它看起来像 很多 HTTP GET 流量。例如:

0000  00 1e 0b a4 d1 7c 00 12  d9 7c 8a bf 08 00 45 00   .....|.. .|....E.
0010 03 87 a4 58 40 00 3d 06 66 90 0a 09 14 15 0a 0a ...X@.=. f.......
0020 07 61 1d 9c bf 09 fe 1e d6 82 6e 77 b9 52 80 18 .a...... ..nw.R..
0030 00 1b 05 43 00 00 01 01 08 0a ac 1c 6f 67 07 b2 ...C.... ....og..
0040 86 1f 72 3d 23 30 30 38 30 38 30 3e 3c 66 6f 6e ..r=#008 080><fon
0050 74 20 66 61 63 65 3d 48 65 6c 76 65 74 69 63 61 t face=H elvetica
0060 2c 41 72 69 61 6c 20 73 69 7a 65 3d 32 20 63 6f ,Arial s ize=2 co
0070 6c 6f 72 3d 23 46 46 46 46 46 46 3e 3c 62 3e 43 lor=#FFF FFF><b>C

果然,经过进一步检查,事实证明代理发出的请求是针对守护程序本身提供的网页 - 所以代理 API 只是一个屏幕-刮刀

但是,如果它们出现在被屏幕抓取的网页上,为什么我得不到任何服务?

开启调试:

System.setProperty("com.tibco.tibrv.config.debug","classes-to-debug")

并且您发现用于从网页中提取服务的模式...

/services,GET~~~~~\
service_detail\\?(\\d+)>\\1</a>.*?size=2>(\\d+\\.\\d+\\.\\d+\\.\\d+)</td>.*?size=2>
(\\d+)</td>.*?size=2>(\\d+)</td>~~~~~\

...无法匹配任何内容!就我而言,这是因为我的服务网络不是 (\\d+\\.\\d+\\.\\d+\\.\\d+) 而不是 ;(\\d+\\.\\d+\\.\\d+\\.\\d+) 的形式 - 注意前导分号。这种微妙的差异是我所有问题的根源!

这看起来像是 rvconfig jar 中的错误 - 需要通过 Tibco 提出! :(

关于java - 为什么 RvdProxy.getServices() 会错误地返回一个空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com