最近我在CORBA通信期间遇到了一些问题,我需要维护一个非常旧的应用程序。 客户端和服务器部分通过CORBA进行通信。在我从服务器上的客户端调用特定函数时 以下错误:
[a-zA-Z0-9_]
错误是可重现的。在调试过程中,我可以看到数据像往常一样由后端加载并连接到客户端。 客户端实际获得响应但无法处理数据。
相同的函数调用适用于其他数据。只有一些特定的数据选择无法通过。
我无法检测到这些数据之间的任何显着差异。 idl-definitions也没有改变。
您对我有任何提示吗,在哪里寻找错误原因?
答案 0 :(得分:0)
确保客户端和服务器上具有相同版本的所有依赖项(jar文件)。
确保客户端和服务器运行相同版本的Java?
答案 1 :(得分:0)
如果服务器和客户端使用不同的lib-Versions,则抛出org.omg.CORBA.MARSHAL的朋友的建议。 我无法解释它如何发生在我的项目中,然而这个特殊的错误本身就消失了: - /
我的案例中的实际问题是org.omg.CORBA.BAD_PARAM异常,这是由以下代码行引起的:
public static void write (final org.omg.CORBA.portable.OutputStream _output, final de.tc.app.lamo.comm.STZFlugereignis _vis_value) {
...
_output.write_string((java.lang.String)_vis_value.flugNr);
...
}
_vis_value.flugNr
为空。
实际上是一个NullPointerException,但是VisiBroker在CORBA-Exception下隐藏了相关的堆栈跟踪。