Jboss 旧EJB客户端向后兼容性

Jboss 旧EJB客户端向后兼容性,jboss,migration,ejb,redhat,ejb-2.x,Jboss,Migration,Ejb,Redhat,Ejb 2.x,我正在将旧应用程序从JBoss EAP 6.4迁移到JBoss EAP 7.3,我有一个奇怪的行为。我在EAP 7.3上设置了远程连接器,并且部署了2.1和3.x EJB应用程序,但是如果我尝试从一个旧客户端进行连接,使用一个非常旧的jboss客户端jar(1.0.25.Final-redhat-1),我会出现一些错误 3.x应用程序工作正常,在JBoss EAP 7.3中,我可以在呼叫到达时看到此日志 INFO [org.wildfly.naming] (default task-1) Wil

我正在将旧应用程序从JBoss EAP 6.4迁移到JBoss EAP 7.3,我有一个奇怪的行为。我在EAP 7.3上设置了远程连接器,并且部署了2.1和3.x EJB应用程序,但是如果我尝试从一个旧客户端进行连接,使用一个非常旧的jboss客户端jar(1.0.25.Final-redhat-1),我会出现一些错误

3.x应用程序工作正常,在JBoss EAP 7.3中,我可以在呼叫到达时看到此日志

INFO [org.wildfly.naming] (default task-1) Wildfly Naming version 1.0.11.Final-redhat-00001
对于2.1 EJB应用程序(在旧的JBoss EAP 6.4上工作没有问题),我在服务器控制台上看到了这个不同的日志

INFO [org.jboss.ejb.client] (default task-2) JBoss EJB Client version 4.0.27.Final-redhat-00001
从客户端我收到了这个错误

INFO: Cannot create a scoped EJB client context for JNDI naming context     org.jboss.ejb.client.naming.ejb.EjbNamingContext@abb9e4 since the current EJB client context selector can't handle scoped contexts
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy1.create(Unknown Source)
at com.test.ejbmigration.EjbRemoteClient.main(EjbRemoteClient.java:117)
Caused by: java.lang.ClassNotFoundException: org.jboss.ejb.client.EJBIdentifier
我发现了一个与这个问题相关的老问题,这个问题非常类似

但无论如何,我认为情况不同。使用带有新库的新客户机没有问题,但是在我的场景中,我有可能在EAP 7.3中使用EJB2.x应用程序,而旧客户机以相同的方式调用它


我想了解将旧EJB2.x应用程序迁移到EAP 7.3和从旧客户端进行远程调用是否可能是一个问题,或者是否可以在服务器上执行某些特定设置来接受来自旧客户端的调用。

NoClassDef错误似乎是根本原因。检查可传递依赖项可能会有所帮助。EJBIdentifier是新的ejb客户端库中可用的东西(例如JBoss EAP 7.3上的一个)。但无论如何,它不是客户端应该拥有的东西,也因为在其他调用(EJB3示例)中,我们没有这个问题的例外,错误显示在客户端。有关的详细信息,请参见1.0.13。返回的应用程序上下文的格式似乎发生了突破性的变化。是的,但问题是部署在新应用程序服务器中的新测试应用程序(EJB3)使用这个旧客户机(调用新应用程序服务器中部署的旧EJB2.x和EJB3的主客户机)也可以正常工作问题是,旧客户端与EAP7服务器上的EJB2.x应用程序存在问题。造成问题的配置是什么?