JBoss EAP 8 server Interoperability with JBoss EAP 7 and JBoss EAP 6 servers

Solution Verified - Updated

Environment

Multi-server applications, where applications deployed in JBoss EAP8 servers communicate with applications deployed in JBoss EAP7 servers or older servers. This applies regardless whether the JBoss EAP8 server receives remote EE requests from those servers, sends EE remote requests to them, or both.
This article covers JNDI requests and EJB requests.

Issue

How to enable interoperability between Red Hat JBoss Enterprise Application Platform 8 server and older versions of the Red Hat Enterprise Application Platform?
JBoss EAP 8 server supports Jakarta EE10, that uses the new jakarta.* package namespace, but older versions of JBoss EAP support Java EE 8 specification or older, whose API classes use the javax.* package namespace (for more information on the namespace change, please refer to the Jakarta EE10 Application Migration Article )
When a JBoss EAP 8 server receives requests from a JBoss EAP 7 server, or sends requests to that server, the EE objects exchanged between those servers need to be correctly ported to the right package namespace so the request or response can be correctly processed.
The same solution applies to a JBoss EAP 8 server communicating with one or more JBoss EAP 6 servers. Notice that communication between JBoss EAP 6 and JBoss EAP 7 servers is not affected by this problem, as both servers support the javax.* package namespace for EE classes.

Resolution

Set the system property "org.wildfly.ee.namespace.interop" to true at all JBoss EAP8 instances containing deployments of the multi-server application. It is not necessary to set the property in older server versions. If set, the property will be ignored as there is no effect setting the interoperability property in JBoss EAP 7 or older servers.

Diagnostic Steps

When seeing a problematic request between a JBoss EAP 8 and older JBoss EAP server, a ClassNotFoundException will occur. The name of the missing class will be an EE API class belonging to the wrong namespace for that server. This is an indicator that you need to enable the interoperability system property as described in this article.

Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.