5.4. Jakarta Enterprise Beans 客户端远程互操作性
远程 Jakarta Enterprise Beans 客户端应用程序使用 remoting 子系统中定义的连接器来连接到服务器。您可以根据您的需要使用以下连接器之一:
-
http-connector:通过undertow的 HTTP 升级功能支持到服务器的客户端连接,默认端口 8080。配置此连接器后,客户端将remote+httpURI 方案用于未加密的连接,或使用remote+httpsURI 方案进行加密连接。 -
连接器:通过旧的远程URI 方案支持到服务器的客户端连接。此连接器适合与旧的 Jakarta Enterprise Beans 客户端应用程序一起使用。
除了使用以前的基于 remoting 的连接器外,Jakarta Enterprise Beans 客户端还可以使用 http URI 方案通过 undertow 和 HTTP 协议连接到服务器。如需了解更多详细信息,请参阅 Jakarta Enterprise Beans Invocation Over HTTP。
默认 HTTP 连接器
默认连接器是 http-connector,这需要客户端使用 URI 方案 remote+http 或 remote+https。默认远程连接端口为 8080,它是 undertow 的默认端口相同。以下示例显示了 jboss-ejb-client 属性文件:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port=8080 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
支持来自不同 JBoss EAP 版本的客户端
如果客户端应用程序使用来自 JBoss EAP 6 的 Jakarta Enterprise Beans 客户端库,并且需要连接到 JBoss EAP 7 服务器,则必须将服务器配置为在 8080 以外的端口上公开重新移动连接器。然后,客户端必须使用新配置的连接器进行连接。
使用 JBoss EAP 7 中的 Jakarta Enterprise Beans 客户端库并需要连接到 JBoss EAP 6 服务器的客户端应用程序必须注意服务器实例不使用远程 http-remoting 连接器,而是使用补救 连接器。这可以通过定义以下新客户端的连接属性来实现:
remote.connection.default.protocol=remote
remote.connection.default.protocol=remote
为 Jakarta Enterprise Beans 客户端应用程序支持多个连接器
在 JBoss EAP 7.4 之前,Jakarta Enterprise Beans 客户端应用程序仅限于只使用一个远程连接器(在 remoting 子系统中定义)以连接到服务器。这个连接器在 ejb3 子系统的 remote 元素的 connector-ref 属性中指定。您可以使用默认的 http-connector 通过 undertow 的 HTTP 升级功能通过 remote+http 协议提供连接,或使用传统的 连接器 通过传统远程协议 提供连接。
借助 JBoss EAP 7.4,您可以指定 Jakarta Enterprise Beans 客户端可用于连接目的的连接器列表。要指定此列表,请使用 远程 元素的新 连接器 属性。connector 属性接受 remoting 子系统中定义的连接器列表。这可让单个服务器为 Jakarta Enterprise Beans 客户端应用程序提供多个连接。例如,与 EAP 7.2 或更高版本兼容的客户端可以使用 协议与之前的 EAP 7.2 版本兼容的旧客户端连接到服务器,其使用传统的远程协议与 remote +http连接器 进行连接。
Example
考虑 legacy-remoting- 是 remoting 子系统中定义的连接器,以下示例演示了使用 connector write 属性更新 remoting 连接器值的 ejb3 子系统配置:
/subsystem=ejb3/service=remote:write-attribute(name=connectors, value=[http-remoting-connector, legacy-remoting-connector])
/subsystem=ejb3/service=remote:write-attribute(name=connectors, value=[http-remoting-connector, legacy-remoting-connector])
您可以查看 domain.xml 或 standalone.xml 文件,以检查 ejb3 子系统中配置的 remoting 连接器:
<remote cluster="ejb" connectors="http-remoting-connector legacy-remoting-connector" thread-pool-name="default"> <channel-creation-options> <option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/> </channel-creation-options> </remote>
<remote cluster="ejb" connectors="http-remoting-connector legacy-remoting-connector" thread-pool-name="default">
<channel-creation-options>
<option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/>
</channel-creation-options>
</remote>
Jakarta Enterprise Beans 远程调用仅支持 JBoss EAP 6 的 JBoss EAP 7。
除了 Jakarta Enterprise Beans 客户端远程互操作外,您还可以使用以下选项连接到旧的客户端: