RvdProxy.getServices() が誤って空の配列を返す可能性があるのはなぜですか?

StackOverflow https://stackoverflow.com/questions/2427466

  •  19-09-2019
  •  | 
  •  

質問

次のコード スニペットは、Tib を作成しようとします。 DaemonManager 特定の RVD に接続し、その 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 を使用するときに、スタックが解除される原因となる問題はありますか?

役に立ちましたか?

解決

私が使用した ワイヤーシャーク 私の間で送信されているトラフィックを確認するには 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

さらに詳しく調べてみると、案の定、プロキシによって行われているリクエストは、 デーモン自体によって提供される Web ページ - したがって、プロキシ API は単なる スクリーンスクレーパー.

しかし、画面スクレイピング中の Web ページにサービスが表示されるのに、サービスが受けられないのはなぜでしょうか?

デバッグをオンにします。

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

そして、Web ページからサービスを抽出するためにパターンが使用されていることがわかります...

/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 で育てる必要があります。:(

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top