将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥
Posted
技术标签:
【中文标题】将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥【英文标题】:What is the full protocol hierarchy when using Glassfish with IIOP将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是什么 【发布时间】:2012-07-27 11:32:52 【问题描述】:设置是 Glassfish 2.1.1 和 Java 独立客户端。通过 IIOP 进行连接。 我们的客户在网络上产生了大量的流量,我正在尝试 找出这是从哪里来的。
据我了解,协议层次结构应该是这样的
Ethernet -> IP -> TCP -> GIOP -> CDR
在 GIOP 之前,这是我在 Wireshark 中看到的,但是 GIOP 消息不清楚。
不幸的是,Wireshark 没有剖析 GIOP 消息的有效负载。 我认为 GIOP 消息应该包含 Java 对象 用 CORBA CDR 序列化,因为那是 CORBA 序列化。 (毕竟对于非 Java 客户端,我必须生成 IDL,所以 CDR 应该是 在任何地方使用)。
我在 Wireshark 中看到的很多很多
XRMI:java.util.Collections\U0024SynchronizedCollection:
后跟一个十六进制字符串和几个字节的二进制数据,然后是 XRMI:.....
从这里我想它是 RMI,我有 RMI over IIOP, 给我
Ethernet -> IP -> TCP -> GIOP -> RMI -> Java Serialization
但如果 GIOP 有效负载是 RMI,那么 CDR 适合哪里。
如何解释 GIOP 消息的负载和 在哪里可以找到 RMI over IIOP 的规范?
【问题讨论】:
找到了 RMI 规范和 Java 序列化规范,都没有提到 XRMI:...这是哪里来的? 【参考方案1】:如上所述,RMI over IIOP 就是 CDR over GIOP。它不是一个不同的协议,它不使用 Java 序列化。它的全部目的是与 CORBA 兼容。
【讨论】:
好的,CORBA 规范的 CDR 部分定义了数组和序列,它们都以直接的方式序列化。不过,它并没有说任何关于收藏的事情。 'XRMI:java.util.Collections\U0024SynchronizedCollection:' 从何而来? @bbuser 它是一个“按值对象”,专门为 Java 添加到 CORBA 规范中。以上是关于将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥的主要内容,如果未能解决你的问题,请参考以下文章
Glassfish 3.1.2.2:IIOP1002:主要传播:在主题中找不到主要信息
将 Oracle 集合与瘦 JDBC 结合使用时的全球化问题
Locust 可以测试使用 CORBA IIOP 协议的系统吗