EAP7.1: EJB over "pure" HTTP for server to server communication
mhofi Feb 8, 2018 3:18 PMHi all
i'm trying to setup a pure http server-to-server ejb-remote-communication. all i found were instructions of how to setup the pure http communication from a client-application (e.g. java se)
JBoss EAP 6.4
Our current setup for server-to-server communication via ejb-remoting is the following
- server-side
- JBoss EAP 6.4
- Configured HTTP remoting connector
- client-side
- JBoss EAP 6.4
- Configured remote-destination-outbound-socket-binding and remote-outbound-connection
- jboss-ejb-client.xml in application-deployment which references the remote-outbound-connection
- setting java.naming.factory.url.pkgs=org.jboss.ejb.client.naming in the application jndi-properties when making building the InitialContext
so far so good - it works.
JBoss EAP 7.1
is it possible/designed to use the new feature of calling a remote ejb with "pure" http (benefit of using http loadbalancers) combined with a server-to-server ejb-remote-communication?
server-side
-> configured http-invoker in undertow
some configuration "attempts" i made on the 'client-side'
- simply change the protocol of the remote-outbound-connection to 'http'
- -> configuration fails because the protocol isn't supported from the remoting subsystem
- changing the client-side configuration by setting the jndi-properties "Context.INITIAL_CONTEXT_FACTORY=org.wildfly.naming.client.WildFlyInitialContextFactory" & "Context.PROVIDER_URL=http://host:port/wildfly-services" instead of the whole rest of the client-side configuration from the eap 6.4 setup
- -> naming lookup failed because of missing NamingProviderFactory for the providerScheme 'http' -> module 'org.wildfly.http-client.naming' and its class org.wildfly.httpclient.naming.HttpNamingProviderFactory not on classpath
- including the jboss modules 'org.wildfly.http-client.ejb' & 'org.wildfly.http-client.naming'
- -> org.wildfly.httpclient.naming.HttpNamingProviderFactory is found via ServiceLoader
- -> ejb call fails because there is no registered org.jboss.ejb.client.EJBTransportProvider for the protocol 'http'
--> the two supported EJBTransportProviders (RemoteTransportProvider & LocalTransportProvider) are "hardcoded" in the setup of the ejb3 subsystem and there isn't a possibility (?) of configuring jboss to use the org.wildfly.httpclient.ejb.HttpClientProvider instead.
thanks for your help or a statement if this isn't supported (yet).