我有一个与 corba 相关的问题。
在我的 Java 应用程序中我使用 typedef 序列数据;
现在我开始研究这个数据 vector 。如果我对 Corba 规范的理解是正确的 序列将转换为 xs:base64Binary 或 xs:hexBinary。 它应该是不透明类型,因此不应使用任何编码。
我尝试了不同的 idl 样式:
void Get(out Data d);
Data Get();
但我发现使用 Corba 移动数据比直接使用套接字慢很多。我对一点点开销没问题,但对我来说,数据看起来仍然是经过编码的。
我是否需要以某种方式配置我的球体来抑制编码,或者我错过了什么。
最佳答案
1) 不,不需要配置任何东西。 2) 你没有错过任何东西。
当 CORBA 编码所有内容时,八位位组序列也被编码。 它总是按原样进行编码(作为字节序列)。编码并不意味着它必须以某种方式改变。每次对象序列化时都会使用CDR编码。这个过程称为编码。
顺便说一句,你使用SUN的java orb还是JacORB? 因为每个 ORB 可能有不同或附加的属性设置。 (但它不应该...)
CORBA 3.0.3 规范中的八位字节定义:“超出 0 - 255 范围的八位字节常量的值将导致编译时错误。[...] 八位字节类型是一个 8 位数量,保证在通信系统传输时不发生任何转换。”
用斜体编辑
关于java - Corba 序列<octet> 比使用套接字慢很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079504/