5.3. JNDI Invocation Over HTTP
通过 HTTP 进行 JNDI 调用包括两个不同的部分:客户端实施和服务器端实施。
5.3.1. 客户端实施 复制链接链接已复制到粘贴板!
客户端实施与远程命名实施类似,但基于使用 Undertow HTTP 客户端的 HTTP。
连接管理是隐式而非直接的,使用与现有远程命名实施中使用的缓存方法。连接池根据连接参数进行缓存。如果指定超时期间不使用它们,则会丢弃它们。
要将远程 JNDI 客户端应用程序配置为使用 HTTP 传输,您必须在 HTTP 传输实现上添加以下依赖关系:
<dependency>
<groupId>org.wildfly.wildfly-http-client</groupId>
<artifactId>wildfly-http-naming-client</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.wildfly-http-client</groupId>
<artifactId>wildfly-http-naming-client</artifactId>
</dependency>
要执行 HTTP 调用,您必须使用 http URL 方案,并包含 HTTP 调用器的上下文名称 wildfly-services。例如:如果您使用 remote+http://localhost:8080 作为目标 URL,为了使用 HTTP 传输,您必须将其 更新为 http://localhost:8080/wildfly-services。
5.3.2. 服务器端实施 复制链接链接已复制到粘贴板!
服务器端实施与现有的远程命名实施类似,但具有 HTTP 传输。
要配置服务器,您必须在 undertow 子系统中使用的每个虚拟主机上启用 http-invoker。这在标准配置中默认启用。如果禁用,您可以使用以下管理 CLI 命令重新启用它:
/subsystem=undertow/server=default-server/host=default-host/setting=http-invoker:add(http-authentication-factory=myfactory, path="/wildfly-services")
/subsystem=undertow/server=default-server/host=default-host/setting=http-invoker:add(http-authentication-factory=myfactory, path="/wildfly-services")
http-invoker 属性采用两个参数:默认为 /wildfly-services 的路径 和 http-authentication-factory,必须是 Elytron http-authentication-factory 的 引用。
任何旨在使用 http-authentication-factory 的部署都必须使用 Elytron 安全性和与指定 HTTP 身份验证工厂对应的相同安全域。