org.omg.CORBA:MARSHAL& org.omg.CORBA.BAD_PARAM错误

时间:2016-03-22 17:04:14

标签: java corba idl

最近我在CORBA通信期间遇到了一些问题,我需要维护一个非常旧的应用程序。 客户端和服务器部分通过CORBA进行通信。在我从服务器上的客户端调用特定函数时 以下错误:

[a-zA-Z0-9_]

错误是可重现的。在调试过程中,我可以看到数据像往常一样由后端加载并连接到客户端。 客户端实际获得响应但无法处理数据。

相同的函数调用适用于其他数据。只有一些特定的数据选择无法通过。

我无法检测到这些数据之间的任何显着差异。 idl-definitions也没有改变。

您对我有任何提示吗,在哪里寻找错误原因?

2 个答案:

答案 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下隐藏了相关的堆栈跟踪。