1

我有一个存在于 Weblogic 10.3 中的 EJB。我们将其移至 12c 并修改构建以使用 maven-plugin 来创建 EJB 客户端和 EJB(2 个单独的构建)。

有一个 Java 应用程序需要通过远程接口调用 EJB。这样做时,有 2 种方法会产生以下错误(其余方法工作正常):

java.rmi.UnmarshalException: Method identifier [29] out of range
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)
    at net.footware.shoeManager.ShoeManager_xwmvzk_EOImpl_1211_WLStub.updateShoeStatus(Unknown Source)

另一种方法给出了相同的错误,但编号不同:

java.rmi.UnmarshalException: Method identifier [28] out of range

值得注意的是,客户端 jar 和 EJB jar 构建在 2 个不同的 pom.xml 文件中。构建客户端的 pom.xml 显式排除了一些类,而构建 EJB jar 的 pom.xml 没有。

它不仅仅是缺少该方法,因为它会发回“未找到方法”错误。我还将方法简化为简单地返回 true(没有其他逻辑)。看来调用永远不会到达远程方法中的代码。还有其他方法可以获取和返回相同的对象并且不会抛出错误。

当我创建一个接受布尔值的新方法时,我收到了这个错误:

Caused by: java.io.StreamCorruptedException: invalid type code: 04

知道什么可能导致这些错误吗?

4

0 回答 0